我的存储过程如下: CREATE OR REPLACE PROCEDURE myproc(rc1 in out sa.globalpkg.RCT1) is BEGIN OPEN RC1 FOR SELECT * FROM sa.table1; END; 现在就算是要在java中调用这个存储过程,参数rc1该如何传?获得后如何处理?
好像没有你这种用法。Statement倒是有setCursorName的方法,不过对你没有用的。其实肯定有办法可以绕过去的,因为所有的sp中需要控制的流程肯定能在更高级java语言中实现。我猜想你的sp是"select for update"的,你可以不用sp,而是在你创建Statement的时候就把AutoCommit设置成false,使用for循环来代替cursor,最后在执行"commit"。如果你只是为了选取数据而写出这样的sp,只能说明你华而不实,要知道sql语句中最简单的是select,同时最难的也是select。
CREATE OR REPLACE PROCEDURE myproc(rc1 in out sa.globalpkg.RCT1)
is
BEGIN
OPEN RC1 FOR
SELECT *
FROM sa.table1;
END;
现在就算是要在java中调用这个存储过程,参数rc1该如何传?获得后如何处理?
registerOutParameter(1, oracle.jdbc.driver.types.cursor);