ストアド プロシージャから Nvarchar SQL Server データ型を処理できない Java での Jboss Hibernate の問題を回避しようとしています。マルチバイト文字を格納しているため、データ型を varchar に変換またはキャストすることはできません。したがって、データ型は必須です。ただし、ストアド プロシージャで型を varbinary に変換し、Java でデコードすることはできます
SQL Server プロシージャ:
Convert(varbinary, Tile) AS Title
Java 側では、次のようにエンコードされた結果セットとフィールドを読み取ります。
エンコードされた実際の更新:
0x440065007300690067006E0020002600200050006C0061006E006E006900
次のように、このバイト配列を文字列に解析しようとします。
byte[] bytes = (byte[]) dataField[0];
try {
String varbinaryString = new String(bytes, "UTF-8");
System.out.println(varbinaryString);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
結果は、ほぼタイトル フィールドから意図的にデコードされた文字列ですが、次の方法でデコードされます。
D e s i g n & P l a n n i
のストレートアウトプットではなく
Design & Planning Director
SQL Server varbinary データ型を Java でデコードするジレンマを手伝ってくれる人はいますか?
あなたの助けやヒントを事前にありがとう.