oracleにはNVARCHARのフィールドが2つあり、Java 1.5を使用しています。文字列が大丈夫か、NVARCHARを使って列を読み込む方が良いのか、これらの値を読んでいればいいですか?あなたはrs
という名前ResultSet
を持っていると仮定するとJDK 1.5のNVARCHAR
0
A
答えて
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に変換します。
関連する問題
つまり、oracle dbからUTF-16に変換せずにNVARCHAR2を読み取ることはできませんか? –
はい、それはJava自体が常にUTF-16を使用するためです。 –