Oracle存储过程中的输出数组
我试图在OracleSQLDeveloper中使用简单的存储过程获得表“empDetails”的结果。以下是SP的定义Oracle存储过程中的输出数组,oracle,stored-procedures,Oracle,Stored Procedures,我试图在OracleSQLDeveloper中使用简单的存储过程获得表“empDetails”的结果。以下是SP的定义 create or replace PROCEDURE TEST_ALL (all_Cursor OUT SYS_REFCURSOR ) AS BEGIN open all_Cursor for select * from empDetails; END TEST_ALL; 执行存储过程时,我无法在“输出结果”选项卡中查看输出。 但是我可以通过直接SQL查询sele
create or replace
PROCEDURE TEST_ALL (all_Cursor OUT SYS_REFCURSOR ) AS
BEGIN
open all_Cursor for
select * from empDetails;
END TEST_ALL;
执行存储过程时,我无法在“输出结果”选项卡中查看输出。
但是我可以通过直接SQL查询select*from empDetails获取数据代码>
有什么线索吗?用这种方式:
declare
a SYS_REFCURSOR;
v_emp_detls empDetails%rowtype;
begin
TEST_ALL (all_Cursor=>a );
loop
FETCH a INTO v_emp_detls;
EXIT WHEN a%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_emp_detls.col1||v_emp_detls.col2..and so on);
end loop;
end;
另一种方法是使用以下各项:
VARIABLE rc REFCURSOR;
begin
test_all(:rc);
end;
/
PRINT rc;
它在SQL*Plus和大多数其他GUI中工作,允许您以脚本的形式运行上述内容(例如SQL Developer、Toad等)