gpt4 book ai didi

oracle - 从oracle存储过程中获取结果集

转载 作者:行者123 更新时间:2023-12-02 08:25:48 33 4
gpt4 key购买 nike

我正在致力于将存储过程从 SQL Server 转换为 Oracle。此存储过程提供直接结果集。我的意思是,如果您在 Management Studio 等中调用存储过程,您将直接获得结果集。

通过转换为Oracle,我遇到了Oracle中不会显示结果集的问题

我在互联网上搜索,发现存储过程应该产生一个 REF CURSOR,但我仍然带着这个问题编写了一小段代码来获取过程中的结果集。

伪代码:

调用存储过程并获取游标使用该光标执行某些操作,以便显示我的结果集

有人有想法吗?

最佳答案

在 SQL Plus 中:

SQL> create procedure myproc (prc out sys_refcursor)
2 is
3 begin
4 open prc for select * from emp;
5 end;
6 /

Procedure created.

SQL> var rc refcursor
SQL> execute myproc(:rc)

PL/SQL procedure successfully completed.

SQL> print rc

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ----------- ---------- ---------- ----------
7839 KING PRESIDENT 17-NOV-1981 4999 10
7698 BLAKE MANAGER 7839 01-MAY-1981 2849 30
7782 CLARKE MANAGER 7839 09-JUN-1981 2449 10
7566 JONES MANAGER 7839 02-APR-1981 2974 20
7788 SCOTT ANALYST 7566 09-DEC-1982 2999 20
7902 FORD ANALYST 7566 03-DEC-1981 2999 20
7369 SMITHY CLERK 7902 17-DEC-1980 9988 11 20
7499 ALLEN SALESMAN 7698 20-FEB-1981 1599 3009 30
7521 WARDS SALESMAN 7698 22-FEB-1981 1249 551 30
7654 MARTIN SALESMAN 7698 28-SEP-1981 1249 1400 30
7844 TURNER SALESMAN 7698 08-SEP-1981 1499 0 30
7876 ADAMS CLERK 7788 12-JAN-1983 1099 20
7900 JAMES CLERK 7698 03-DEC-1981 949 30
7934 MILLER CLERK 7782 23-JAN-1982 1299 10
6668 Umberto CLERK 7566 11-JUN-2009 19999 0 10
9567 ALLBRIGHT ANALYST 7788 02-JUN-2009 76999 24 10

关于oracle - 从oracle存储过程中获取结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170548/

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