2011-04-24 3 views
0

oracleにはNVARCHARのフィールドが2つあり、Java 1.5を使用しています。文字列が大丈夫か、NVARCHARを使って列を読み込む方が良いのか、これらの値を読んでいればいいですか?あなたはrsという名前ResultSetを持っていると仮定するとJDK 1.5のNVARCHAR

答えて

2

が、これはNVARCHARのために適切である:

String myColumn = rs.getString("my_column"); 

Globalization Support for JDBC Driversを参照してください:

Oracle JDBCドライバは、あなたからデータを取得したり、データを挿入できるようにすることで、グローバリゼーション・サポートを提供しますOracle9iデータベースのSQL CHARおよびNCHARデータ型の列に変換します。 Java文字列はJDBCプログラム用にUTF-16(16ビットUnicode)としてエンコードされるため、クライアント上のターゲット文字セットは常にUTF-16です。 CHAR、VARCHAR2、LONGおよびCLOBデータ型に格納されているデータの場合、JDBCはデータをデータベース・キャラクタ・セットからUTF-16に透過的に変換します。 NCHAR、NVARCHAR2およびNCLOBデータ型に格納されているUnicodeデータの場合、JDBCは各国語キャラクタ・セットのデータを透過的にUTF-16に変換します。

+0

つまり、oracle dbからUTF-16に変換せずにNVARCHAR2を読み取ることはできませんか? –

+0

はい、それはJava自体が常にUTF-16を使用するためです。 –