请教:根据条件动态执行有游标的存储过程,但是执行过程莫名吊死!

sandygood sandygood 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请教:根据条件动态执行有游标的存储过程,但是执行过程种吊死!
调用存储过程
CREATE OR REPLACE PROCEDURE cp_test_procedure(o_vErrMsg OUT VARCHAR2) IS
t_vSQL VARCHAR2(1000);
t_cursor pg_HMBSTCur.CurTyp;
t_vlocalsite VARCHAR2(60);
BEGIN
t_vSQL := 'begin
cp_test_cursor(: o_cursor);
end; ';

EXECUTE IMMEDIATE t_vSQL
USING OUT t_cursor;
LOOP
FETCH t_cursor
INTO t_vlocalsite;
EXIT WHEN t_cursor%NOTFOUND;
dbms_output.put_line(t_vlocalsite);
END LOOP;
CLOSE t_cursor;

EXCEPTION
WHEN OTHERS THEN
o_vErrMsg := SQLERRM;
NULL;
END ;
获取游标存储过程
CREATE OR REPLACE PROCEDURE cp_test_cursor(o_cursor OUT pg_HMBSTCur.CurTyp) IS
BEGIN

OPEN o_cursor FOR
SELECT postfix FROM t_sys_addrpostfix;
NULL;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM);
END;
游标包
create or replace package pg_HMBSTCUR
as
TYPE CurTyp is ref cursor;
inval_cur_num EXCEPTION;
pragma exception_init(inval_cur_num,-1023);
end pg_HMBSTCUR;
表:
create table T_SYS_ADDRPOSTFIX
(
POSTFIX VARCHAR2(255) not null,
PRIORITY NUMBER(2),
UNDERCORP VARCHAR2(12) not null
);

在执行 cp_test_procedure 的时候,就会死掉,也没有死锁,奇怪!请大家探讨一下:是不是不能执行带有游标的存储过程??

...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
sandygood
Oracle 17,133 成员 55,258 内容