相关疑难解决方法(0)

什么可能导致SQL Server JDBC错误'输出参数访问的参数号0'没有设置值?

我有一些访问SQL Server 2005的Java代码,如下所示:

CallableStatement cstmt = ...;
... // Set input parameters
cstmt.registerOutParameter(11, Types.INTEGER);
cstmt.execute();
int out = cstmt.getInt(11);
Run Code Online (Sandbox Code Playgroud)

从最后一行抛出以下异常:

com.microsoft.sqlserver.jdbc.SQLServerException: The value is not set 
     for the parameter number 0.
   at com.microsoft.sqlserver.jdbc.SQLServerException.
     makeFromDriverError(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.
     skipOutParameters(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.
     getOutParameter(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.
     getterGetParam(Unknown Source)
   at com.microsoft.sqlserver.jdbc.SQLServerCallableStatement.
     getInt(Unknown Source)
   at org.jboss.resource.adapter.jdbc.WrappedCallableStatement.
     getInt(WrappedCallableStatement.java:192)
Run Code Online (Sandbox Code Playgroud)

被调用的存储过程看起来像这样:

CREATE PROCEDURE dbo.stored_proc ( -- 10 input parameters
                                 , @out_param INT OUTPUT) AS

-- Variable declarations 

SET @out_param = 0

-- Do processing...

SET @out_param …
Run Code Online (Sandbox Code Playgroud)

sql-server stored-procedures jdbc mssql-jdbc

8
推荐指数
1
解决办法
3万
查看次数

您最喜欢的调试MS SQL存储过程的方法是什么?

我的大多数SP都可以通过手动输入数据来执行(和测试).这很好用,使用简单的PRINT语句允许我"调试".

然而,存在涉及多于一个存储过程并且找到有效数据以进行输入的情况是繁琐的.从我的网络应用程序中触发事物更容易.

我对分析器有一点经验,但我还没有找到一种方法来探索我的存储过程中逐行进行的操作.

你有什么方法?

谢谢你,一如既往.

注意:我假设使用SQL Server 2005+

sql sql-server debugging stored-procedures

6
推荐指数
1
解决办法
2578
查看次数