Atribuir mais de uma variável no mesmo SQL – PL/pgSQL

Por esses dias precisei criar uma função no Postgres, e em determinada parte precisei popular duas variáveis de uma mesma query. Porém, não queria executar esta mesma query duas vezes para popular minhas variáveis.

Usualmente seria:

CREATE OR REPLACE FUNCTION funcao(codigo integer)
RETURNS SETOF character varying AS
$BODY$
DECLARE
variavel int;
variavel2 int;
BEGIN

--ATRIBUINDO A VARIÁVEL 1
select into variavel campo_tabela from tabela where campo = codigo;

--ATRIBUINDO A VARIÁVEL 2
select into variavel2 campo_tabela2 from tabela where campo = codigo;

END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION funcao(integer)
OWNER TO postgres;

Para popular várias de uma só vez, basta trazer as variáveis e em seguida na mesma ordem os campos das tabelas:

...
select into variavel, variavel2
campo_tabela, campo_tabela2
from tabela
where campo = codigo;
...

Até…

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s