在pl/sql中声明绑定变量时出错



你好,我得到的错误,需要建议。代码是:

VARIABLE v_bind1 VARCHAR2(10); --declare bind variable
exec : v_bind1 := 'RebellionRider'; --execute it
SET SERVEROUTPUT ON;
BEGIN
dbms_output.put_line(v_bind1);
END;

当m试图声明变量时,输出如下:

Usage: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | BLOB | BFILE
REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE ] ] 

,当试图打印它时,显示如下错误:

SP2-0552: Bind variable "V_BIND1" not declared.

你需要:旁边绑定名称:

VARIABLE v_bind1 VARCHAR2(10); --declare bind variable
exec :v_bind1 := 'RebellionRider'; --execute it

,然后引用为:v_bind1

参考:

在PL/SQL中通过键入冒号(:)来引用绑定变量立即通过变量的名称。例如

假设这是SQL*Plus而不是PL/SQL Developer,因为您发布的错误是SQL*Plus错误,这是因为后面的注释:

失败:

SQL> VARIABLE v_bind1 VARCHAR2(10); --declare bind variable
Usage: VAR[IABLE] [ <variable> [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |
VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |
NVARCHAR2 (n) | CLOB | NCLOB | BLOB | BFILE
REFCURSOR | BINARY_FLOAT | BINARY_DOUBLE ] ]

成功:

SQL> VARIABLE v_bind1 VARCHAR2(10);
SQL>

SQL结束符(默认为;,但不要忘记它是可配置的)必须出现在行尾,否则SQL*Plus将无法识别它。但是像variableSQL * +命令不需要SQL终结者和没有任何评论的语法,所以整个线是拒绝无效。

你的下一个问题是v_bind1:v_bind1是两个不同的东西。这个失败是因为v_bind1是一个未声明的PL/SQL局部变量(它需要在块中声明):

begin
dbms_output.put_line(v_bind1);
end;
/

你需要的是刚刚声明的绑定变量:v_bind1:

begin
dbms_output.put_line(:v_bind1);
end;
/

由于v_:都表示一个变量,我建议您不需要第一个。

相关内容

  • 没有找到相关文章