SQL state: 42601. Execption handling.

Поиск
Список
Период
Сортировка
От Ц
Тема SQL state: 42601. Execption handling.
Дата
Msg-id 1654611542.501794552@f527.i.mail.ru
обсуждение исходный текст
Ответы Re: SQL state: 42601. Execption handling.  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Community, is that behavior is explainable?
 
I suppose the reason of such behavior in different steps of code parsing, but can`t find any discussions or topics in documentation.
Сould someone clarify the situation for sure?
 
create or replace function dbo.func(result out intas $$begin result = 1end; $$ language plpgsql;

-- 1 --
do $$
declare
v_result int;
begin 
  
select p.result from dbo.func(d) p into v_result;
exception when SQLSTATE '42601' then
    raise '42601';
  
when others then 
    
raise 'others';
end;
$$

 
--Exception is handled. This is OK.
ERROR:  
others
CONTEXT:  PL/pgSQL function inline_code_block line 9 at RAISE
********** Error **********
ERROR: 
others
SQL state: P0001
Context: PL/pgSQL 
function inline_code_block line 9 at RAISE

-- 2 --
do $$
begin 
  
select p.result from dbo.func() p into v_result;
exception when SQLSTATE '42601' then
    raise '42601';
  
when others then 
    
raise 'others';
end;
$$

 
--Exception is not handled. This is the question.
ERROR:  
"v_result" is not a known variable
LINE 
3:   select p.result from dbo.func() p into v_result;
********** Error **********
ERROR: 
"v_result" is not a known variable
SQL state: 42601
Character57
 
 
 
 
 

В списке pgsql-general по дате отправления:

Предыдущее
От: Ц
Дата:
Сообщение: SQL state: 42601. Execption handling.
Следующее
От: Tom Lane
Дата:
Сообщение: Re: SQL state: 42601. Execption handling.