如何用游标作参数 一个存储过程调用另外好多存储过程,另外的存储过程需要的参数差不多(集中在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谢谢了,还没验证你给的答案,不过你写的东西就是我想要的,非常谢谢也谢谢各位,分数不是很多了~ sql 面试问题? 怎么调用一个返回值为游标的方法并且遍历这个游标? Oracle的tns问题 关于dml语句返回值的问题~急啊 一个简单的数据库问题! 我想22:50分执行这个作业,不知道如何设置参数…… 求一条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型参数来存放查出的值。
也谢谢各位,分数不是很多了~