不带输出参数的过程中的Oracle PL/SQL输出查询
我试图从过程中的select查询输出一个表。 本质上,在执行过程时打印查询输出 例如表:my_表不带输出参数的过程中的Oracle PL/SQL输出查询,sql,oracle,stored-procedures,plsql,Sql,Oracle,Stored Procedures,Plsql,我试图从过程中的select查询输出一个表。 本质上,在执行过程时打印查询输出 例如表:my_表 A B ------ ------ 1 6 2 7 3 8 4 9 5 10 我可以在没有输出参数的情况下运行如下代码 SQL> create or replace procedure myproc 2 as 3 begin 4 print (
A B
------ ------
1 6
2 7
3 8
4 9
5 10
我可以在没有输出参数的情况下运行如下代码
SQL> create or replace procedure myproc
2 as
3 begin
4 print (select * from my_table;)
5 end;
6 /
Procedure created.
SQL> execute myproc
PL/SQL procedure successfully completed.
A B
------ ------
1 1
2 2
3 3
4 4
5 5
在Oracle 12c中,您可以使用
DBMS\u SQL.RETURN\u RESULT
CREATE PROCEDURE myproc AS
cur1 sys_refcursor;
BEGIN
OPEN cur1 FOR SELECT * FROM my_table;
DBMS_SQL.RETURN_RESULT(cur1);
END;
/
execute myproc;
在12c之前,您可以使用DBMS\u SQL
执行此操作,但是您需要知道列名和数据类型
此链接包含此类实施的详细信息
在Oracle 12c中,可以使用
DBMS\u SQL来完成此操作。返回\u结果
CREATE PROCEDURE myproc AS
cur1 sys_refcursor;
BEGIN
OPEN cur1 FOR SELECT * FROM my_table;
DBMS_SQL.RETURN_RESULT(cur1);
END;
/
execute myproc;
在12c之前,您可以使用DBMS\u SQL
执行此操作,但是您需要知道列名和数据类型
此链接包含此类实施的详细信息
感谢您的快速响应!我最终不得不使用与您提供的链接中的实现类似的实现。不幸的是,我们正在使用的系统尚未更新到12c。感谢您的快速响应!我最终不得不使用与您提供的链接中的实现类似的实现。不幸的是,我们正在使用的系统还没有更新到12c。这在程序中是不可能的。您可以使用
功能
代替过程
来实现您的要求。这在过程中是不可能的。您可以使用功能
代替过程
,以达到您的要求。