SQLDeveloper 使用参数执行过程

SQLDeveloper execute procedure with parameters

我正在努力寻找一种方法来执行具有 SYS_REFCURSOR 的过程 我发现了不同的方法,在 sqlplus 中似乎更容易,但我想通过 sqldeveloper

中的查询来完成

查询有 3 个参数,第 4 个参数是 SYS_REFCURSOR

procedure_example(var1 number,var2 varchar2,var3 varchar2,result out sys_refcursor)

如何在 SQLDEVELOPER 中执行类似的操作?

因为这是一个带有 OUT 参数的过程,你必须使用另一个 PL/SQL 块,其中有 DECLARE 部分(这样你就有“东西”接受你的程序returns).

declare
  l_rc sys_refcursor;
begin
  procedure_example(var1   => 1,
                    var2   => 2,
                    var3   => 3,
                    result => l_rc);
end;
/

(当然,您会将有意义的值传递给 IN 参数。)


另一种选择是声明一个变量,在执行过程时使用它并打印它的内容。例如(基于 Scott 的示例模式):

GUI 方式...使用@littlefoot 的代码:

create or replace procedure p_test(
 par_deptno in number, 
 par_rc out sys_refcursor)
is
begin
 open par_rc for
  select employee_id,
                 first_name,
                 last_name,
                 job_id,
                 salary
    from employees
    where department_id = par_deptno;
end;

在数据库(或文件)中打开,然后点击 运行 按钮。

设置输入参数,然后点击'Ok' - 程序会运行,你可以在下面看到你的refcursor。