Archive for Dezembro, 2008
Postgres PLPGSQL Functions + Tabelas Temporárias
A alguns dias atrás precisei criar uma função no postgres que fazia inserções e consultas em uma tabela temporária que deveria ser criada dentro da função. Acontece que só funcionava na primeira execução, depois disso sempre me retornava algum erro na tentativa de criar a tabela novamente. Eu precisava de uma instrução que tem no SQL Server e que me parece não ter no postgres – “Exists” e “ObjectExists”. Bom, na falta .. dar-se um jeito. A solução que encontrei é usar o controle de exceções para dinâmicamente criar a tabela temporária caso ela ainda não exista na sessão.
– TESTA SE A TABELA JÁ FOI CRIADA NA SESSÃO
EXECUTE ‘SELECT * FROM tabela_tmp OFFSET 1′;
– SE NÃO EXISTIR, A EXCEÇÃO É DISPARADA E ENTÃO CRIA-SE A TABELA TEMPORÁRIA
EXCEPTION
WHEN undefined_table THEN
CREATE TEMPORARY TABLE tabela_tmp (
campo_1 INTEGER,
campo_2 VARCHAR(30)
) ON COMMIT DROP;
END;
Problema resolvido
Abraços
Add comment Dezembro 17, 2008