我在 PL/SQL 中编写了一个简单的存储过程来执行相当于
SELECT * FROM tablename
这是返回引用游标的过程
create or replace
procedure proc_name (outVal OUT sys_refcursor) as
myCursor sys_refcursor;
myRecords records%ROWTYPE;
l_sql VARCHAR(2000);
begin
l_sql := 'SELECT * FROM RECORDS';
open myCursor for l_sql;
loop
FETCH myCursor INTO myRecords;
EXIT WHEN myCursor%NOTFOUND;
"DBMS_OUTPUT.put_line('myRecords.name =' || myRecords.name);"
end loop;
close myCursor;
end;
现在,当我想在 SQL 命令提示符中执行我的过程而不在代码中包含引号中的行时,我会这样做
VARIABLE cr REFCURSOR
EXEC proc_name(:cr)
现在我得到一个提示说
PL/SQL procedure successfully completed
现在当我尝试执行命令时
print cr;
我收到一个错误
ORA-24338: Statement handle not executed
请帮我解决一下这个 。我需要知道如何仅使用我的存储过程返回的这个引用游标来打印表格。我不想在过程本身中打印任何内容,因此想从过程中一起删除引号中的行。