gpt4 book ai didi

oracle - TORA 使用 OUT REF CURSOR 执行包程序

转载 作者:行者123 更新时间:2023-12-04 06:17:51 25 4
gpt4 key购买 nike

我正在尝试执行一个包过程,它有几个输入参数和一个 REF CURSOR 输出参数,但似乎无法弄清楚 TORA (我的 SQL IDE)

这是一个我想执行并查看光标的过程的人为示例:

PROCEDURE get_peeps_in_city ( pi_city IN varchar(100), po_recordset OUT REF CURSOR )
IS
BEGIN
OPEN po_recordset
FOR Select Id,
FName,
LName
FROM People
WHERE City like '%' || pi_city || '%'
END;

这是我迄今为止尝试过的:
DECLARE
v_cursor REF CURSOR;
BEGIN
execute PKG_PEEPS.get_peeps_in_city('Chicago', v_cursor);
END

我得到的错误是这样的:

PLS-00103: Encountered the symbol "END" when expecting one of the following: begin function package pragma procedure subtype type use form current cursor

最佳答案

你可能正在寻找这样的东西:

DECLARE
v_cursor SYS_REFCURSOR;
v_Id NUMBER;
v_FName VARCHAR2(200);
v_LName VARCHAR2(200);
BEGIN
PKG_PEEPS.get_peeps_in_city('Chicago', v_cursor);

LOOP
FETCH v_cursor INTO v_Id, v_FName, v_LName;
EXIT WHEN v_cursor%NOTFOUND;
-- do something with v_Id, v_FName, v_LName
END LOOP;
CLOSE v_cursor;
END;
/

更新:

您可能希望查询结果显示在您的 IDE 中,就像您直接运行 SELECT 语句一样。上面的代码不会发生这种情况,我不知道有任何代码可以实现这一点(除非您安装特定的表函数)。

您能做的最好的事情是在循环中输出检索到的数据(使用 DBMS_OUTPUT.PUT_LINE )。

关于oracle - TORA 使用 OUT REF CURSOR 执行包程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7011997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com