Ответ 1
Получил это:
set serveroutput on
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
dbms_output.put_line(v_str1);
end;
Вот:
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;
Синтаксис переменных привязки формы: 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 * Разработчик должен был быть:
set serveroutput on;
declare
v_str1 varchar2(80);
begin
v_str1 := '&v_str';
dbms_output.put_line(v_str1);
end;
Вам нужно выбрать все и выполнить его. Результат появится на панели "Script Output".
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.
Try
declare
v_str1 varchar2(80);
begin
v_str1 := 'test';
print v_str1;
end