我在oracle中创建了一个程序,如下所示
create or replace procedure jobsfetch
(id varchar2,jobcursor out sys_refcursor)
as
begin
open jobcursor for
select * from shop.jobs where job_id = id;
end;
我使用:
在SQL * Plus中运行该过程exec jobsfetch('AD_ASST');
但我收到以下错误
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to 'JOBSFETCH'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
如何执行此过程,因为它只有一个输入参数?
答案 0 :(得分:0)
试试这个:
variable CURSOR_LIST REFCURSOR;
exec jobsfetch('AD_ASST',:CURSOR_LIST);
print CURSOR_LIST;
答案 1 :(得分:0)
您只需使用plsql块:
declare
outCur sys_refcursor;
begin
jobsfetch('AD_ASST', outCur);
/* what you need to do with the cursor */
end;
答案 2 :(得分:0)
问题是你的程序有一个out参数,但你没有提供它。
你不能exec jobsfetch('AD_ASST');
我建议将整个内容放在像Aleksej这样的plsql块中。
declare
outCur sys_refcursor;
begin
jobsfetch('AD_ASST', outCur);
/* what you need to do with the cursor */
end;
这将为您提供在outCur中打开的光标,您可以随心所欲地执行任何操作。