SQL> SET SERVEROUTPUT ONSQL> Create Or Replace Procedure lunartest2 Is
2 TYPE NumTab IS TABLE OF emp.empno%TYPE;
3 TYPE NameTab IS TABLE OF emp.ename%TYPE;
4 enums NumTab; -- no need to initialize
5 names NameTab;
6 BEGIN
7 SELECT empno, ename BULK COLLECT INTO enums, names FROM emp;
8 FOR i in enums.FIRST..enums.LAST LOOP
9 DBMS_OUTPUT.PUT_LINE(enums(i) || ' ' || names(i));
10 END LOOP;
11 END;
12 /如果这样存储过程 我想把enums作为一个结果集返回 而不是只输出
那么存储过程未lunartest2 (enums out numTab)那么在java里面调用的时候
CallableStatement stmt = connect.prepareCall("{call lunartest2 (?)}");
stmt.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR); 这里试过oracle.jdbc.OracleTypes.CURSOR
是出错的 报错调用 lunartest2 时参数个数或类型错误不知道应该是什么类型呢
2 TYPE NumTab IS TABLE OF emp.empno%TYPE;
3 TYPE NameTab IS TABLE OF emp.ename%TYPE;
4 enums NumTab; -- no need to initialize
5 names NameTab;
6 BEGIN
7 SELECT empno, ename BULK COLLECT INTO enums, names FROM emp;
8 FOR i in enums.FIRST..enums.LAST LOOP
9 DBMS_OUTPUT.PUT_LINE(enums(i) || ' ' || names(i));
10 END LOOP;
11 END;
12 /如果这样存储过程 我想把enums作为一个结果集返回 而不是只输出
那么存储过程未lunartest2 (enums out numTab)那么在java里面调用的时候
CallableStatement stmt = connect.prepareCall("{call lunartest2 (?)}");
stmt.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR); 这里试过oracle.jdbc.OracleTypes.CURSOR
是出错的 报错调用 lunartest2 时参数个数或类型错误不知道应该是什么类型呢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货