ここは:
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
print :v_str1;
end
SQLDeveloperを使用してSQLワークシートで実行すると、次のようになります。
Bind Variable "v_str1" is NOT DECLARED
anonymous block completed
とった:
set serveroutput on
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
dbms_output.put_line(v_str1);
end;
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キーワードを使用する必要があります。
: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;
すべてを選択して実行する必要があります。結果は「スクリプト出力」パネルに表示されます。
試してみてください
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
print v_str1;
end