Here is:
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
print :v_str1;
end
When I run it using SQLDeveloper just in a sql worksheet I get this:
Bind Variable "v_str1" is NOT DECLARED
anonymous block completed
Here is:
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
print :v_str1;
end
When I run it using SQLDeveloper just in a sql worksheet I get this:
Bind Variable "v_str1" is NOT DECLARED
anonymous block completed
Got it:
set serveroutput on
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
dbms_output.put_line(v_str1);
end;
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.
Try
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
print v_str1;
end
variable V_STR1 varchar2(20);--bind variable
--IF You want to use bind variable you must declare before your PL/SQL block.
set serveroutput on;--TO see the output
set autoprint on;--TO SEE THE BIND VARIABLE VALUE WHEREVER WE USED IN PL/SQL CODE
declare
V_STR2 varchar2(80);--normal variable
begin
:V_STR1 := 'Hello';--assigning value to bind variable
V_STR2 := 'test';
DBMS_OUTPUT.PUT_LINE(:V_STR1);
DBMS_OUTPUT.PUT_LINE(V_STR2);
end;
/
© 2022 - 2024 — McMap. All rights reserved.