What is wrong with this PL/SQL? Bind Variable * is NOT DECLARED What is wrong with this PL/SQL? Bind Variable * is NOT DECLARED oracle oracle

What is wrong with this PL/SQL? Bind Variable * is NOT DECLARED


Got it:

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

More info here.


The bind variables syntax of the form :VARNAME are used primarily in SQL* Plus (except for bind variables for dynamic SQL, I think).For SQL* Developer, PL/SQL Developer, or other apps, there is the "&" for variable substitution:

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

EDIT:My bad, the code for Oracle SQL*Developer should have been:

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

You have to select everything and execute it. The result will appear in the "Script Output" panel.


print is not a PLSQL function. If you want to get an output, you can use 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 is a bind variable but you must declare not in a plsql. When you declare it you must use VARIABLE keyword.