Pular para o conteúdo

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

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

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

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;

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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

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

up

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

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]

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

Conhece o Pentaho Data Integration - Kettle?

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

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

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder