Sebastian, tem mais um detalhe que preciso me deter – E se o arquivo não existir no servidor?
Quando digito uma data que não tem o arquivo correspondente no servidor aparece o seguinte erro: ERRO: não pôde abrir arquivo "/tmp/sage/arqs/bhtac_h_1983_02_05.dados" para leitura: Arquivo ou diretório não encontrado CONTEXTO: comando SQL "COPY bhtac_h_1983_02_05 FROM '/tmp/sage/arqs/bhtac_h_1983_02_05.dados' DELIMITER ','" PL/pgSQL function "fs_existe_tabela_nessa_data" line 18 at execute statement A função que fiz baseado na tua estar da seguinte forma. Fico no aguardo. CREATE OR REPLACE FUNCTION fs_existe_tabela_nessa_data(tabela varchar) RETURNS void AS $$ DECLARE pTabela ALIAS FOR $1; sql_copy varchar; sql_createtable varchar; result integer; BEGIN PERFORM true FROM pg_class WHERE relname ilike tabela; IF NOT FOUND THEN sql_createtable = 'CREATE TABLE ' || tabela || ' (BH_DTHR TIMESTAMP WITH TIME ZONE, BH_CHAVE INT, BH_VARIACAO INT , FLAG INT, FLAGEST SMALLINT, LINFA REAL, LINFE REAL, LINFU REAL, LSUPA REAL, LSUPE REAL, LSUPU REAL, RESNORM REAL, RGALR SMALLINT, VALEST REAL, VALOR REAL);'; EXECUTE sql_createtable; --TENHO QUE TESTAR SE ESSE ARQUIVO EXISTE NO SERVIDOR -- COMO FAZER ISSO NO POSTGRES? sql_copy = 'COPY ' || tabela || ' FROM ''/tmp/sage/arqs/' || tabela || '.dados'' DELIMITER '','''; EXECUTE sql_copy; RAISE EXCEPTION 'N�O Encontrei'; ELSE RAISE EXCEPTION 'Encontrei'; END IF; RETURN; END; $$ LANGUAGE 'plpgsql' VOLATILE; SELECT fs_existe_tabela_nessa_data('bhpas_h_2001_09_10');
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral