给你一个例子吧,自己依瓢画葫芦吧:
create or replace procedure sql_test (pi1 number,po out sys_refcursor) is
begin
if pi1=1 then
open po for 'select 1 id,''Tom'' nm from dual union all select 2 id,''Jack'' from dual';
else
open po for 'select 3 id,''Lucy'' nm from dual union all select 4 id,''Lily'' from dual';
end if;
end ;
/
--调用
set serveroutput on;
declare
cur1 SYS_REFCURSOR;
id number;
nm varchar2(100);
begin
sql_test(1,cur1);
loop
fetch cur1 into id,nm;
exit when cur1%notfound;
dbms_output.put_line(id||':'||nm);
end loop;
close cur1;
end;
/
解决方案 »
- oracle 把net manager快捷方式删怎么办!
- oracle导入excel数据问题,只创建了表,没导入数据
- 这两个语句有什么区别??
- 求助!那位大侠能帮我优化一下这条语句
- ORACLE有一个专门的中国网,请问网址?
- 请教高手一个Group By的问题
- 为什么我在安装oracle9i的过程中,大约14%时总是出错!
- 关于把vb和oracle相连,请大家指教!
- 小虫在redhat 7.3下装oracle 8i的问题,各位高手请进!
- ORA-12638: Credential retrieval failed这是什么原因
- Oracle GoldenGate 同步及复制问题
- C#连接oracle数据库报错:ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务
直接insert select就插入进去了啊
insert into T(C1,C2,C3)SELECT C1,C2,C3 FROM temp
prm_cur out outcursor , -- 主数据游标
prm_orgName out VARCHAR2
)
isbegin
......
open prm_cur for
select * from A where 。。
union all
select * from B where 。。
union all
select * from C where 。。【我插入的代码段】end;我想在存储过程里面open完游标以后,使用游标中的数据,插入到另一张表中,,这个地方改泽尔写啊?我自己写了一个如下:
【
FOR aaa IN prm_cur LOOP
begin
INSERT INTO ......
exception when others then
null;
end;
END LOOP;
】错误:PLS-00221: 'PRM_CUR' 不是过程或尚未定义
行:480
文本:FOR c_cur_vehmodel IN prm_cur LOOP这种情况我该怎么写啊?
A outcursor;
V_R A%ROWTYPE;
BEGIN
AAAAA(A,prm_orgName);--第一个参数为游标,第二个参数根据你的需要写
loop
fetch A INTO V_R;
EXIT WHEN A %NOTFOUND; begin
INSERT INTO ......
exception when others then
null;
end;END LOOP;
CLOSE A;
END;