2009-10-20 56 views
12

这里是:这个PL/SQL有什么问题?绑定变量*不宣

declare 
    v_str1 varchar2(80); 
begin 
    v_str1 := 'test'; 
    print :v_str1; 
end 

当我运行它只是在SQL工作表中使用的SQLDeveloper我得到这个:

Bind Variable "v_str1" is NOT DECLARED 
anonymous block completed 
+1

什么是“印刷”?我知道没有该名称的PL/SQL命令。 – 2009-10-21 13:53:02

回答

5

明白了:

set serveroutput on 

declare 
    v_str1 varchar2(80);  
begin 
v_str1 := 'test'; 
dbms_output.put_line(v_str1); 
end; 

More info here.

0

尝试

declare 
    v_str1 varchar2(80); 
begin 
    v_str1 := 'test'; 
    print v_str1; 
end 
+0

给出:ORA-06550 – NitroxDM 2009-10-21 00:47:32

3

绑定变量的形式语法:VARNAME主要用于SQL * Plus(我认为动态SQL的绑定变量除外)。 对于SQL *开发,PL/SQL开发人员,或其他应用程序,有 “&” 进行变量替换:

 

declare 
    v_str1 varchar2(80); 
begin 
    v_str1 := &v_str; 
    print v_str1; 
end 
 

编辑: 我的坏,为Oracle SQL代码*开发人员应该已经:


set serveroutput on; 
declare 
    v_str1 varchar2(80); 
begin 
    v_str1 := '&v_str'; 
    dbms_output.put_line(v_str1); 
end; 

您必须选择所有内容并执行它。结果将显示在“脚本输出”面板中。

+0

它提示输入V_str的值,然后抛出一个错误ORA-06550。如果您将其更改为打印:V_str1;你会得到绑定变量“v_str1”不是DECLARED。 – NitroxDM 2009-10-21 00:46:23

2

print不是PLSQL功能。如果你想获得的输出,你可以使用dbms_output.put_line(v_str1);

set serveroutput on;  
declare v_str1 varchar2(80); 
begin 
    v_str1 := 'test'; 
    dbms_output.put_line(v_str1); 
end; 

:v_str1是绑定变量,但你必须在PLSQL没有申报。当你声明它时,你必须使用VARIABLE关键字。