不带输出参数的过程中的Oracle PL/SQL输出查询

不带输出参数的过程中的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 (

我试图从过程中的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 (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。这在程序中是不可能的。您可以使用
功能
代替
过程
来实现您的要求。这在过程中是不可能的。您可以使用
功能
代替
过程
,以达到您的要求。