2015-01-27 1 views
-1

Я пытаюсь вызвать функцию PL/SQL, который я создал со следующими инструкциями:Обратиться в PL/SQL функция

variable rep number 
execute :rep:=sal_ok_F2('MANAGER',100); 
print rep; 

Но я получаю сообщение об ошибке, говорящее о том, что переменная респ не объявлена, ISN 't строка «номер переменной переменной», которая должна быть объявлением этой переменной?

+0

'переменная респ number' определяет SQL * Plus \ переменную. Но оператор присваивания ': =' работает только с переменной PL/SQL. –

+1

Вы используете это как инструкцию или как скрипт? (Предполагая, что вы используете SQL Developer ...) –

+0

@a_horse_with_no_name - ссылка ': rep' позволяет использовать ее как переменную связывания, так что назначение будет прекрасным. (Я уверен, что вы знаете это действительно ...) В зависимости от клиента, но если 'variable' работает, то он выглядит как SQL * Plus или, скорее, SQL Developer. –

ответ

0

Попробуйте так:

declare 
    rep number; 
begin 
    select sal_ok_F2('MANAGER',100) into rep from dual; 
    dbms_output.put_line(rep); 
    --or 
    rep := sal_ok_F2('MANAGER',100); 
    dbms_output.put_line(rep); 
end; 
+0

Ваш скрипт работает, но я должен использовать метод моего первого сообщения, и, кстати, как вы печатаете значение переменной rep с помощью вашего метода? – Neo

+0

@ Othmane Я обновил ответ. – Parado

+0

@a_horse_with_no_name Да, действительно! – Parado

Смежные вопросы