Oracle
 sql >> Database >  >> RDS >> Oracle

È possibile emettere un'istruzione SELECT da un blocco PL/SQL?

Puoi farlo in Oracle 12.1 o versioni successive:

declare
    rc sys_refcursor;
begin
    open rc for select * from dual;
    dbms_sql.return_result(rc);
end;

Non ho DBVisualizer con cui testare, ma probabilmente dovrebbe essere il tuo punto di partenza.

Per maggiori dettagli, vedere Set di risultati impliciti nella Guida alle nuove funzionalità di Oracle 12.1, Oracle Base ecc.

Per le versioni precedenti, a seconda dello strumento potresti essere in grado di utilizzare variabili di associazione del cursore di riferimento come questo esempio di SQL*Plus:

set autoprint on

var rc refcursor

begin
    open :rc for select count(*) from dual;
end;
/

PL/SQL procedure successfully completed.


  COUNT(*)
----------
         1

1 row selected.