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

李 い [E-MAIL ADDRESS DELETED]
2013年 2月 19日 (火) 10:12:58 JST


小谷さんへ

李です。

>
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 メーリングリストの案内