如何用游标作参数 一个存储过程调用另外好多存储过程,另外的存储过程需要的参数差不多(集中在2个表中的一些字段)(数据只有一条)可否在第一个存储过程中查出值放在游标中,然后把参数传给其他的存储过程,这个传递的方式是么样的?或者可以用其他的什么方式来处理小弟,刚学存储过程,高手请指点! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQL> CREATE OR REPLACE FUNCTION gg(s INT,e INT) RETURN SYS_REFCURSOR AS 2 r_c SYS_REFCURSOR; 3 BEGIN 4 OPEN r_c FOR 5 SELECT ename,empno 6 FROM (SELECT ename,empno, ROW_NUMBER() OVER(ORDER BY ENAME) RN FROM SCOTT.EMP T) 7 WHERE RN >= S 8 AND RN <= E; 9 RETURN r_c; 10 END; 11 /Function createdSQL> SQL> create or replace procedure gg_new(r_c SYS_REFCURSOR) 2 as 3 v_c1 VARCHAR2(10); 4 v_c2 VARCHAR2(10); 5 BEGIN 6 LOOP 7 FETCH r_c INTO v_c1,v_c2; 8 EXIT WHEN r_c%NOTFOUND; 9 dbms_output.put_Line(v_c1||'-'||v_c2); 10 END LOOP; 11 CLOSE r_c; 12 END; 13 /Procedure createdSQL> SQL> declare 2 r_c SYS_REFCURSOR; 3 begin 4 r_c := gg(2,6); 5 gg_new(r_c); 6 end; 7 /ALLEN-7499BLAKE-7698CLARK-7782FORD-7902JAMES-7900PL/SQL procedure successfully completedSQL> 1.不用过程,用函数,将它的返回值存放为查出的值。2.用过程,并定义out型参数来存放查出的值。 返回游标,需要把所有过程打包,通过REF CURSOR返回。 hyrongg谢谢了,还没验证你给的答案,不过你写的东西就是我想要的,非常谢谢也谢谢各位,分数不是很多了~ 存储过程中使用select时的问题 各位兄弟姐妹帮帮忙,求一个trigger 写在oracle DB中的 如何使oracle的表名支持标点符号? 想写一个导出数据的批处理 数据库中查询如何提高执行效率??(不能用存储过程) 怎么取上一条记录啊!!! 如何启动iSQL*Plus? [求助]为何我的Oracle 8i运行程序时提示“Jrew.exe 应用程序错误”? 程序返回ORA-24334:no descriptor for this position是怎么回事?怎么处理? SQL请教 如何删除字段数据后面的空格 请各位帮帮我看一个存储过程
SQL> CREATE OR REPLACE FUNCTION gg(s INT,e INT) RETURN SYS_REFCURSOR AS
2 r_c SYS_REFCURSOR;
3 BEGIN
4 OPEN r_c FOR
5 SELECT ename,empno
6 FROM (SELECT ename,empno, ROW_NUMBER() OVER(ORDER BY ENAME) RN FROM SCOTT.EMP T)
7 WHERE RN >= S
8 AND RN <= E;
9 RETURN r_c;
10 END;
11 /Function createdSQL>
SQL> create or replace procedure gg_new(r_c SYS_REFCURSOR)
2 as
3 v_c1 VARCHAR2(10);
4 v_c2 VARCHAR2(10);
5 BEGIN
6 LOOP
7 FETCH r_c INTO v_c1,v_c2;
8 EXIT WHEN r_c%NOTFOUND;
9 dbms_output.put_Line(v_c1||'-'||v_c2);
10 END LOOP;
11 CLOSE r_c;
12 END;
13 /Procedure createdSQL>
SQL> declare
2 r_c SYS_REFCURSOR;
3 begin
4 r_c := gg(2,6);
5 gg_new(r_c);
6 end;
7 /ALLEN-7499
BLAKE-7698
CLARK-7782
FORD-7902
JAMES-7900PL/SQL procedure successfully completedSQL>
2.用过程,并定义out型参数来存放查出的值。
也谢谢各位,分数不是很多了~