Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiapo

Problemas com procedure

Recommended Posts

Pessoal,

 

Estou fazendo uma procedure no PostgreSQL, que chama uma outra procedure para consistir se uma informação existe ou não.

 

Dentro desta primeira procedure, chamo a segunda da seguinte forma:

 

DECLARE
reg record;

BEGIN
.
.
.
         SELECT * INTO reg FROM ffp_nome_da_funcao(Parametro); //Esta função faz um select na base dado o parâmetro e, se existir, traz os dados, caso contrário, não traz nada.
         IF found THEN
             ...
         ELSE
             ...
         END IF;
END;

Só que está acontecendo um problema: como a minha segunda função pode retornar um registro ou não retornar nada, quando não traz nada, ocorre a seguinte menssagem de erro:

- Query has no destination for result data. E indica para eu utilizar PERFORM

 

Mas não posso utilizar o PERFORM pois posso trazer dados, caso eles existam.

 

Como posso fazer para solucionar este problema?

 

Muito obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Estou fazendo uma procedure no PostgreSQL, que chama uma outra procedure para consistir se uma informação existe ou não.

 

Dentro desta primeira procedure, chamo a segunda da seguinte forma:

 

DECLARE
reg record;

BEGIN
.
.
.
 SELECT * INTO reg FROM ffp_nome_da_funcao(Parametro); //Esta função faz um select na base dado o parâmetro e, se existir, traz os dados, caso contrário, não traz nada.
 IF found THEN
 ...
 ELSE
 ...
 END IF;
END;

Só que está acontecendo um problema: como a minha segunda função pode retornar um registro ou não retornar nada, quando não traz nada, ocorre a seguinte menssagem de erro:

- Query has no destination for result data. E indica para eu utilizar PERFORM

 

Mas não posso utilizar o PERFORM pois posso trazer dados, caso eles existam.

 

Como posso fazer para solucionar este problema?

 

Muito obrigada

 

Encontrei isso na documentação do postgre, que deve ajudar no que você quer:

BEGIN SELECT * INTO STRICT myrec FROM emp WHERE empname = myname; EXCEPTION WHEN NO_DATA_FOUND THEN RAISE EXCEPTION 'employee % not found', myname; WHEN TOO_MANY_ROWS THEN RAISE EXCEPTION 'employee % not unique', myname; END;

Link para a documentação do postgre

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.