Reputation:
I use an Oracle database and currently I have a problem by creating a Procdure which should create some SQL SELECT Outputs. The procedure was successfully completed but I get no output.
It is necessary the work with some temporary variables and another cursor? And it is possible to complement the SQL SELECT Statments with an ORDER BY clause at the end?
Upvotes: 0
Views: 62
Reputation: 142705
Perhaps a procedure which returns sys_refcursor
would be a better idea. Because, if you dynamically (execute immediate
) do some selects, those results have to be stored somewhere.
This is a simple example, but it might give you idea.
SQL> create or replace procedure p_test (par_rc out sys_refcursor) is
2 begin
3 open par_rc for
4 select 'emp' table_name, count(*) from emp union all
5 select 'dept' , count(*) from dept union all
6 select 'bonus' , count(*) from bonus;
7 end;
8 /
Procedure created.
SQL> var rc refcursor
SQL> exec p_test(:rc);
PL/SQL procedure successfully completed.
SQL> print rc
TABLE_NAME COUNT(*)
---------- ----------
emp 14
dept 4
bonus 0
SQL>
Upvotes: 1