我试图从过程中的选择查询中输出一个表。 本质上,在程序执行时打印查询输出。
例如table:my_table
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
答案 0 :(得分:1)
在Oracle 12c中,您可以使用DBMS_SQL.RETURN_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_SQL
执行此操作,但是您需要知道列名称和数据类型。
此链接包含此类实施的详细信息。
http://www.java2s.com/Code/Oracle/System-Packages/Dynamicselectstatementandrowfetch.htm