Função que copia dados .TXT pra banco [erro]

1. Função que copia dados .TXT pra banco [erro]

Filipe de Jesus Lobato
FJLobato

(usa CentOS)

Enviado em 20/11/2016 - 13:54h

Galera, fiz uma função na qual recebo parâmetros do VB como local e nome do arquivo. Bem simples, e queria que recebesse os parâmetros e realizasse a cópia mas por algum motivo dá erro. Alguém poderia apontar de que forma posso fazer melhor? Dá erro toda hora de sintaxe no 'C'.

CREATE OR REPLACE FUNCTION alr._copiar_tabela_arquivo(
str_local_origem character varying,
str_nome_arquivo character varying)
RETURNS integer AS
$BODY$

------------------------------------------------------------------------------------------------------------------
-- EXEMPLO: SELECT alr._copiar_tabela_arquivo_sage('C:\Pasta\,'arquivo.txt');
-------------------------------------------------------------------------------------------------------------------

DECLARE
sql varchar;
BEGIN


sql = 'COPY tmp.' || str_nome_arquivo || ' (horario, idalrm, nome_equip, descricao, tipo, ocorrencia) FROM '|| str_local_origem || str_nome_arquivo || ' DELIMITERS $ ;';


EXECUTE sql;


RETURN 0;

END; $BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION alr._copiar_tabela_arquivo(character varying, character varying)
OWNER TO postgres;



  


2. Re: Função que copia dados .TXT pra banco [erro]

Filipe de Jesus Lobato
FJLobato

(usa CentOS)

Enviado em 20/11/2016 - 19:25h

up


3. Re: Função que copia dados .TXT pra banco [erro]

Helio Alcântara
fhalcantara

(usa Outra)

Enviado em 21/11/2016 - 11:46h

Olá,

tente desta forma. Comigo funcionou.

-- Function: _copiar_tabela_arquivo(character varying, character varying)

-- DROP FUNCTION _copiar_tabela_arquivo(character varying, character varying);

CREATE OR REPLACE FUNCTION _copiar_tabela_arquivo(
str_local_origem character varying,
str_nome_arquivo character varying)
RETURNS integer AS
$BODY$

------------------------------------------------------------------------------------------------------------------
-- EXEMPLO: SELECT alr._copiar_tabela_arquivo_sage('C:\Pasta\,'arquivo.txt');
-------------------------------------------------------------------------------------------------------------------

DECLARE
sql varchar;
aspa varchar;
BEGIN
aspa = '''';

sql = 'COPY public.ofmessagearchive TO '|| aspa|| str_local_origem || str_nome_arquivo ||aspa||' DELIMITERS'|| aspa||'$'||aspa;
EXECUTE sql;


RETURN 0;

END; $BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION _copiar_tabela_arquivo(character varying, character varying)
OWNER TO postgres;


Abs

Até.


4. Re: Função que copia dados .TXT pra banco [erro]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/11/2016 - 15:12h

Conhece o Pentaho Data Integration - Kettle?


5. Re: Função que copia dados .TXT pra banco [erro]

Filipe de Jesus Lobato
FJLobato

(usa CentOS)

Enviado em 21/11/2016 - 15:58h

amarildosertorio escreveu:

Conhece o Pentaho Data Integration - Kettle?


Não, Amigos, consegui aqui, apenas falta eu fazer com que o postgres não deixe o nome da tabela toda em minúscula, pois a string tá em maiúscula e ele fica alterando.

ERROR: relation "tmp._oma_cor_jan0114_alr" does not exist 


Sendo que nos parâmetros está em maíusculo as letras q deveriam estar



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts