Java 使用默认可调用语句参数的JDBC
我有一个使用JDBC可调用语句调用的过程。第一个参数v_type有一个我想要使用的默认值。程序/代码被简化Java 使用默认可调用语句参数的JDBC,java,stored-procedures,jdbc,Java,Stored Procedures,Jdbc,我有一个使用JDBC可调用语句调用的过程。第一个参数v_type有一个我想要使用的默认值。程序/代码被简化 PROCEDURE select_type(v_type IN VARCHAR2 DEFAULT 'All', cv_1 OUT SYS_REFCURSOR) AS BEGIN IF (v_type = 'All') THEN OPEN cv_1 FOR SELECT DISTINCT
PROCEDURE select_type(v_type IN VARCHAR2 DEFAULT 'All',
cv_1 OUT SYS_REFCURSOR)
AS
BEGIN
IF (v_type = 'All')
THEN
OPEN cv_1 FOR
SELECT DISTINCT TYPE,
FROM type_source;
ELSE
IF (v_type = 'NotAll')
THEN
OPEN cv_1 FOR
SELECT DISTINCT type, desc,
FROM OTHER_TYPE_SOURCE;
END IF;
END;
这是我尝试的代码,假设null将触发默认值
callablestatement = connection.prepareCall("{ CALL select_type(?,?) } ") ;
callablestatement.setString(1, null);
callablestatement.registerOutParameter(2, OracleTypes.CURSOR);
callablestatement.execute();
resultset = (ResultSet)callablestatement.getObject(2);
最后一行.getObject抛出游标关闭异常,可能是由于null参数与过程中的IF结构不匹配,并且游标从未打开 可能重复:我想你是对的,这是重复的。谢谢。您的评论可能与上面的2条评论重复。。