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。
我正在努力寻找一种方法来执行具有 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。