奇怪的行为。
我们有 MSSQL 服务器 2008 R2。
我们的 Java Servlet 正在使用以下连接调用 PreparedStatement。
... inner join Containstable (fulltextTable, mycolumn, ?) as KeyTable on id = KeyTable.[KEY] ...
在哪里 ?= 针
这工作正常。
但是当我像这样向 Containstable 添加两个参数时:
... inner join Containstable (fulltextTable, mycolumn, ?, ?, ?) as KeyTable on id = KeyTable.[KEY] ...
在哪里 ?=针(搜索),?= LANGUAGE N'德语'(语言),?= 250(将结果限制为 250 行)
我得到这个例外:
java.sql.SQLException: Argument data type nvarchar is invalid for argument 4 of CONTAINSTABLE function.
这在 SQL Server Management Studio 中运行良好。
这是 Java 中的 SQLServerDriver 的问题吗?
干杯每
这是我的代码 - 这有效:
if (contains!=null && contains.length()!=0) {
sql.append(" inner join Containstable( myFulltext, myColumn, ?) as KeyTable on id = KeyTable.[KEY]");
elementTypes.add(Types.NVARCHAR);
paramObject.add(contains);
//elementTypes.add(Types.NVARCHAR);
//paramObject.add("LANGUAGE N'German'");
//elementTypes.add(Types.BIGINT);
//paramObject.add(maxResults);
}