在groovy中使用输出参数调用存储过程时出错

时间:2014-10-30 15:22:15

标签: stored-procedures groovy sybase jtds

......我找到了原因 - 问题是存储过程中实际上有一个选择是从我的存储过程调用的,我没有注意到。删除后一切正常。

我从我的代码调用存储过程,它有一个输入和一个输出参数。由于某种原因,它给了我一个例外,不知道问题是什么,这里是代码:

int fileNumber

sql.call("{call initIMAGINE_IDENTIFIERS_DELTAS(?, ?)}", [type, Sql.INTEGER]){ number ->
    fileNumber = number
}

这是存储过程的声明:

create procedure initIMAGINE_IDENTIFIERS_DELTAS
@reportType  varchar(30) = '',
@loop_id int output 
as
BEGIN

我得到的错误:

Oct 30, 2014 11:18:16 AM groovy.sql.Sql callWithRows
WARNING: Failed to execute: {call initIMAGINE_IDENTIFIERS_DELTAS(?, ?)} because: Output parameters have not yet been processed. Call getMoreResults().
Caught: java.sql.SQLException: Output parameters have not yet been processed. Call getMoreResults().
java.sql.SQLException: Output parameters have not yet been processed. Call getMoreResults().
        at net.sourceforge.jtds.jdbc.ParamInfo.getOutValue(ParamInfo.java:159)
        at net.sourceforge.jtds.jdbc.JtdsCallableStatement.getOutputValue(JtdsCallableStatement.java:124)
        at net.sourceforge.jtds.jdbc.JtdsCallableStatement.getObject(JtdsCallableStatement.java:315)
        at Test.init(SqlConnection.gy:26)
        at Test$init.call(Unknown Source)
        at SqlConnection.run(SqlConnection.gy:9)

相同的代码实际上在12.5兼容模式下对Sybase 15.1起作用,但对Sybase 15.7不起作用。我正在使用jtds 1.3.1驱动程序。

0 个答案:

没有答案