您的位置:首页 > 数据库 > Oracle

Oracle sys_refcursor 游标变量不能用作参数传递

2010-11-30 07:59 357 查看
今天在使用 Oracle sys_refcursor 游标变量时, 抛出错误: 'Execution failed: ORA-00604: 递归 SQL 级别1出现错误', 'ORA-01001: 无效的游标'.  原来是sys_refcursor 游标变量不能用作参数传递.  请见如下 code:
PROCEDURE P1(
p_cursor     OUT    sys_refcursor,
p_year        IN       NUMBER
)
BEGIN
......
P2(p_cursor, 'test');
END;
PROCEDURE P2(
p_cursor      OUT    sys_refcursor,
p_company  IN       VARCHAR2
)
BEGIN
......
END;

需改成
TYPE t_cursor IS REF CURSOR;   -- 在 PACKAGE(Spec) 中定义
PROCEDURE P1(
p_cursor     OUT    t_cursor,
p_year        IN       NUMBER
)
BEGIN
......
P2(p_cursor, 'test');
END;
PROCEDURE P2(
p_cursor      OUT    t_cursor,
p_company  IN       VARCHAR2
)
BEGIN
......
END;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: