Я бы предположил, что это потому, что если SELECT INTO
не возвращает ровно одно значение в str_mgrgin_out
, оно выдаст исключение, поэтому строка str_mgrgin_out := 'BLAH';
никогда не будет выполнена.Я думаю, что ошибка будет ORA-01403
.
Попробуйте добавить обработчик исключений в конце:будет:
CREATE OR REPLACE FUNCTION GET_MANAGERGIN2 (str_empgin_in IN varchar2)
RETURN varchar2
AS
str_mgrgin_out varchar2(10);
BEGIN
BEGIN
SELECT 'FOO' INTO str_mgrgin_out FROM dual WHERE str_empgin_in = '01356666';
str_mgrgin_out := 'BLAH';
Exception
When Others THen
str_mgrgin_out := 'BLAH';
END;
RETURN str_mgrgin_out;
END GET_MANAGERGIN2;