0

我正在编写一些 Java 代码来查询 SQLServer 数据库中的存储过程。我的连接字符串如下所示:

jdbc:jtds:sqlserver://address:port;database=dbname

现在,当我尝试使用连接调用存储过程时:

  String sql = "{call xyz.StoreProcNamedFoo(?,?,?,?)}";

我收到此错误:

java.sql.SQLException: Could not find stored procedure 'xyz.StoreProcNamedFoo'.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2886)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2328)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:638)
at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:614)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:573)
at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.execute(JtdsPreparedStatement.java:764)

一位 DBA 建议他将默认模式更改为 xyz,而不是 abc。这很好用,但他必须马上改回来,因为默认模式必须是 abc。我的问题是,我如何调用这个存储过程?

4

1 回答 1

0

我将驱动程序从 jtds 更改为 Microsoft 官方版本。现在工作。

于 2013-08-22T21:43:06.273 回答