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

hmmo2u0o  于 2023-08-03  发布在  Oracle
关注(0)|答案(4)|浏览(127)

这里是:

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

2sbarzqh

2sbarzqh1#

明白了:

set serveroutput on

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

字符串
More info here.

8iwquhpp

8iwquhpp2#

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;


你必须选择一切并执行它。结果将显示在“脚本输出”面板中。

00jrzges

00jrzges3#

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

u5i3ibmn

u5i3ibmn4#

试试看

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

字符串

相关问题