Что не так с этим PL / SQL? Переменная Bind * не объявлена
здесь:
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
4 ответов
есть:
set serveroutput on
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
dbms_output.put_line(v_str1);
end;
синтаксис переменных привязки формы: VARNAME используются в основном в SQL * Plus (за исключением переменных привязки для динамического SQL, я думаю). Для SQL * Developer, PL / SQL Developer или других приложений существует "&" для подстановки переменных:
declare
v_str1 varchar2(80);
begin
v_str1 := &v_str;
print v_str1;
end
EDIT: Мой плохой, код для Oracle SQL * Developer должен был быть:
set serveroutput on;
declare
v_str1 varchar2(80);
begin
v_str1 := '&v_str';
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.