Estou com um código em Plpgsql que está dando o seguinte erro:
ERROR: column "fonte_dados" does not exist
LINE 1: DELETE FROM tmp."_OMA_jan0114_alr" WHERE fonte_dados='alr';
Que eu já sei pois a coluna não existe, nessa hipóteses, e o conteúdo da coluna fica justamente no próprio nome da tabela. Gostaria de saber se há como eu ler apenas uma parte do nome que me convém da tabela pelo plpgsql.
ELSIF ( str_nometipogravacaodados = 'tmp2' ) THEN
sql = 'DELETE FROM tmp."' || str_nome_tabela || '" WHERE fonte_dados=''' || str_fonte_dados || ''';';
O formato do nome da tabela é o seguinte e na tabela não posso adicionar a coluna fonte_dados:
_OMA_jan0114_alr
Quero que ele compare str_fonte_dados com o nome depois do último _ (underline) da tabela, que neste caso foi "alr" mas é de acordo com variável.
Tentei dessa forma não deu certo:
ELSIF ( str_nometipogravacaodados = 'tmp2' ) THEN
PERFORM SUBSTR(str_nome_tabela,0,13) AS "str_nome_tabela_sem_fonte_dados";
PERFORM SUBSTR(str_nome_tabela,14,3) AS "str_nome_fonte_dados";
sql = 'DELETE FROM tmp."' || str_nome_tabela_sem_fonte_dados || str_nome_fonte_dados'";''