0

インデックススキャン(SQL Server 2000以降)に関するJTDSドキュメントに記載されているパフォーマンスの問題が発生したため、sendStringParametersAsUnicodeパラメーターをに設定する必要がありましたfalse

これは私たちのケースの99.9%には問題ありませんが、ntextフィールドのUnicodeデータに依存するアプリケーションがあります。NTEXTパラメータを持つストアドプロシージャを使用して、前述のテーブルに書き込みます。上記の設定を変更したため、Unicode文字列は「?」に変換されます。文字、これは特に有用ではありません。

私は次のようなさまざまなことをいじっています。

  • setObject(1, unicode_string, Types.NCLOB); //as well as NVARCHAR

  • stmt.setUnicodeStream(1, new ByteArrayInputStream(unicode_string.getBytes("UTF16")), unicode_string.length());

  • setNClob(1, unicode_string);

ただし、これらはいずれも機能しません。何か案は?

4

1 に答える 1

0

回避策の1つ(正解ではありませんが)は、 CallableStatementではなくStatementを使用することです。

stmt = cn.createStatement();
stmt.execute("INSERT INTO test_unicode (my_unicode) VALUES (N'" + input + "')");

ただし、これはパフォーマンスの大幅なオーバーヘッドをもたらします。

于 2012-09-07T14:10:09.193 に答える