2011-05-30 91 views
2

我遇到了应该在Oracle中运行的这些语句,但是我不确定应该如何运行这些语句。尝试将它们作为SQL运行,但不起作用。如何在SQL Developer中运行以下Oracle exec语句?

variable output1 NUMBER; 
variable output2 VARCHAR2(100); 

exec rp_orader_closure_pxkg.rp_exaec_close_SILvl_WKO('aaa', 
                '1', 
                '10aaa001a6414339', 
                :output1, :output2); 
+2

“不起作用”是什么意思?任何消息? – DCookie 2011-05-30 17:02:24

回答

4

我不确定所有SQLPlus命令在SQL Developer中工作。你当然可以在匿名块中做到这一点:

DECLARE 
    output1 NUMBER; 
    output2 VARCHAR2(100); 
BEGIN 
    rp_orader_closure_pxkg.rp_exaec_close_SILvl_WKO('aaa', '1', 
     '10aaa001a6414339', output1, output2); 
END; 
+0

+1:如果没有计划重新使用查询,匿名块 – 2011-05-30 23:15:02

1

只丢掉前两行并在开头只执行exec这一行。 SQL开发人员会问你变量的值。因为它们是输出参数,所以请留下它们NULL

3

它适用于我,SQL Developer v3.0.04。在脚本窗口中,我输入:

create or replace package p as 
procedure prc (p1 in varchar2, p2 in out varchar2); 
end; 
/
create or replace package body p as 
procedure prc (p1 in varchar2, p2 in out varchar2) is 
begin 
    p2 := p1; 
end prc; 
end; 
/
variable output2 VARCHAR2(100); 

exec p.prc('aaa',:output2); 

print output2; 

在脚本输出窗口:

PACKAGE p compiled 
PACKAGE BODY p compiled 
anonymous block completed 
OUTPUT2 
--- 
aaa 

也许我失去了一些东西?