注册

游标变量的存储过程 使用时提示:调用参数不兼容或者不匹配?救救我!

阿杰升级路 2023/12/20 1215 3 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:win11
【CPU】:
【问题描述】*:有个返回多个结果集的存储过程,在达梦调用中,报错
image.png

CREATE OR REPLACE PROCEDURE your_procedure
(
result1 OUT SYS_REFCURSOR, 
result2 OUT SYS_REFCURSOR
)
AS
BEGIN
-- 打开第一个结果集
OPEN result1 FOR SELECT  top 10 * FROM a表;

-- 打开第二个结果集
OPEN result2 FOR SELECT  top 10 * FROM b表;
END;

sql 调试

declare 
row1 TD_FACPUSH_APPLY_ITEM%ROWTYPE;
row2 TD_FACPUSH_APPLY_RECORD%ROWTYPE;
result1  SYS_REFCURSOR ;
result2  SYS_REFCURSOR ;
BEGIN
-- 调用存储过程,并接收输出参数
your_procedure( result1, result2);
-- 循环输出结果集1的数据
LOOP
FETCH result1 INTO row1;
EXIT WHEN result1%NOTFOUND; -- 当结果集为空时退出循环
-- 输出数据
DBMS_OUTPUT.PUT_LINE(row1);
END LOOP;

-- 循环输出结果集2的数据
LOOP
FETCH result2 INTO row2;
EXIT WHEN result2%NOTFOUND; -- 当结果集为空时退出循环
-- 输出数据
DBMS_OUTPUT.PUT_LINE(row2);
END LOOP;

-- 关闭结果集
CLOSE result1;
CLOSE result2;
end;

回答 0
暂无回答
扫一扫
联系客服