对REF Cursor使用SqlOutParameter(String name,int sqlType)

时间:2014-03-31 14:05:19

标签: java spring

在我们的代码中,我们使用spring StoredProcedure来执行存储过程。我们的SP包含3个光标作为输出。在一种情况下,我们需要来自所有三个游标的输出,在另一种情况下,我们只需要从一个游标输出,所以我们在StoredProcedure中构造如下。

if (case1) {// All cursors to be used
declareParameter(new SqlOutParameter("OUTPUT1", OracleTypes.CURSOR, null, new SqlOutParamterExtension1()));
declareParameter(new SqlOutParameter("OUTPUT2", OracleTypes.CURSOR, null, new SqlOutParamterExtension2()));
declareParameter(new SqlOutParameter("OUTPUT3", OracleTypes.CURSOR, null, new SqlOutParamterExtension3()));
} else{ // only one cursor used
declareParameter(new SqlOutParameter("OUTPUT1", OracleTypes.CURSOR);
declareParameter(new SqlOutParameter("OUTPUT2", OracleTypes.CURSOR, null, new SqlOutParamterExtension2()));
declareParameter(new SqlOutParameter("OUTPUT3", OracleTypes.CURSOR);
}

这样声明有什么问题吗? 我们的代码正在进行预生产,但我们在生产中遇到“ORA 01001无效游标”错误(并非总是如此),我们怀疑,如果此代码与此问题有关?

1 个答案:

答案 0 :(得分:0)

您尝试引用尚不存在的游标。 也许这可以帮到你。

http://www.techonthenet.com/oracle/errors/ora01001.php