[seasar-dotnet:2239] Re: 【S2Dao.Net】OracleのNCHARまたはNVRCHAR2の取扱について

kotani.k [E-MAIL ADDRESS DELETED]
2013年 2月 19日 (火) 23:08:46 JST


李さん、koalaさん

小谷です。

ご回答&コメントありがとうございます。
不勉強でお恥ずかしい限りです。

koalaさんの
>System.Data.DbType.stringはOracleDbType.Varchar2にマッピング
李さんの
>NLS_CHARACTERSETはUnicode(たとえばAL32UTF8)でしたら、正常に更新できます。
を合わせて考えると
System.Data.DbType.string⇒OracleDbType.Varchar2にマッピング⇒VarcharなのでNLS_CHARACTERSETに設定された文字コードを使用、という
動きになるのかな・・・と勝手に推測しています。

李さんが書いて下さったコードを元に(そのまま使わせていただくかもしれませんが)、
どうするべきか考えてみます。少々お時間を下さい。

(多分できない要件なのだろうな、ということは承知の上で一応確認させていただきたいのですが、
NLS_CHARACTERSETにもUnicodeとなるキャラクタセットを設定して運用することはできないでしょうか?
(非Unicodeによる入力がある場合は適所で変換をかける・・・など))

以上です。

2013年2月19日 10:33 李 い <liyi @ kssinet.co.jp>:
> 李です。
>
> また書き間違いました。
>
> >(System.Data.DbType.stringはOracleDbType.Varchar2にマッピングされたら何も
> 問題がないのに...)
>> (System.Data.DbType.stringはOracleDbType.NVarchar2にマッピングされたら何も
> 問題がないのに...)
> です。
>
> 失礼しました。
>
>
> -----Original Message-----
> From: seasar-dotnet-bounces @ ml.seasar.org
> [mailto:seasar-dotnet-bounces @ ml.seasar.org] On Behalf Of 李 い
> Sent: Tuesday, February 19, 2013 10:13 AM
> To: seasar-dotnet @ ml.seasar.org
> Subject: [seasar-dotnet:2237] Re: 【S2Dao.Net】OracleのNCHARまたはNVRCHAR2の
> 取扱について
>
> 小谷さんへ
>
> 李です。
>
>> http://docs.oracle.com/cd/E16338_01/win.112/b66456/featOraCommand.htm#i10072
> 22
> こちらも読んだことがあります。
>
> >DBの既存レコードから読み込みの場合、Unicode文字が正しく読み込まれ、画面に
> 表示できます。
> >しかし、画面で入力されたUnicode文字をDBに更新する時、「?」に化けてしまい
> ました。
> 面白いのは、この現象がDBサーバはのNLS_CHARACTERSETはJA16SJISTILDE(非Unicode)
> の場合は発生します。
> NLS_CHARACTERSETはUnicode(たとえばAL32UTF8)でしたら、正常に更新できます。
> (同じOracleDbType.Varchar2にマッピングするのに動きの違いは理解できない=_=)
>
>
> ところが、CHAR,VARCHAR2のカラムに対して、OracleDbType.NVarchar2を設定しても
> 正しく動くみたいです。
> (System.Data.DbType.stringはOracleDbType.Varchar2にマッピングされたら何も問
> 題がないのに...)
>
>
> 以上です。
>
>
> -----Original Message-----
> From: seasar-dotnet-bounces @ ml.seasar.org
> [mailto:seasar-dotnet-bounces @ ml.seasar.org] On Behalf Of koala
> Sent: Tuesday, February 19, 2013 9:43 AM
> To: seasar-dotnet @ ml.seasar.org
> Subject: [seasar-dotnet:2236] Re: 【S2Dao.Net】OracleのNCHARまたはNVRCHAR2の
> 取扱について
>
>
> 李さん
> 小谷さん
>
> #李さんと入れ違いになりましたがせっかく書いたのでこのまま投稿します。
>
>> S2Dao.NETのupdate処理に渡すEntity内のプロパティのうち、
>> 文字化けが起きているプロパティの型はどのようになっているでしょうか?
>> (stringであればUnicode用のSystem.DbType.Stringが使用されるはずなのです
> が。。。)
>
> OracleCommandオブジェクト
> http://docs.oracle.com/cd/E16338_01/win.112/b66456/featOraCommand.htm#i10072
> 22
>
> DbTypeからのOracleDbTypeの判断
> OracleParameterクラスでは、DbTypeの値を指定すると、表3-7に示されているとおり
> OracleDbTypeの値が判断されます。
> 表3-7 DbTypeからのOracleDbTypeの判断
>
> によると、System.Data.DbType.stringはOracleDbType.Varchar2にマッピングされて
> います。
> OracleDbType.NVarchar2にマッピングされるSystem.Data.DbTypeは存在しないので、
> エンティティのプロパティの型では対応できないということはないでしょうか?
>
>
> 以上です。
>
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet


seasar-dotnet メーリングリストの案内