这个PL / SQL有什么问题?绑定变量*未声明

时间:2009-10-20 23:09:14

标签: oracle variables plsql

这是:

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

4 个答案:

答案 0 :(得分:5)

知道了:

set serveroutput on

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

More info here.

答案 1 :(得分:3)

表单的绑定变量语法:VARNAME主要用于SQL * Plus(我认为动态SQL的绑定变量除外)。 对于SQL * Developer,PL / SQL Developer或其他应用程序,有“&”对于变量替换:


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

修改: 我的不好,Oracle SQL * Developer的代码应该是:


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

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

答案 2 :(得分:3)

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关键字。

答案 3 :(得分:0)

尝试

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