0

我们遇到了 JTDS 文档中描述的有关索引扫描(SQL Server 2000 及更高版本)的性能问题,因此不得不将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

一种解决方法(尽管它不是正确的答案)是使用Statement而不是CallableStatement

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

然而,这会带来显着的性能开销。

于 2012-09-07T14:10:09.193 回答