Fórum Erro dblink PostgreSQL #599699
11/01/2019
0
Já tentei achar a solução de todas as formas que imaginei possíveis e não consegui.
O mais engraçado, neste caso, é que tenho 10 tabelas que fazem a integração, porém, somente 1 apresenta o erro que citei.
Agradeço pela ajuda.
Fabiano Rios
Curtir tópico
+ 0Post mais votado
13/01/2019
Thalles Oliveira
Gostei + 1
Mais Posts
14/01/2019
Fabiano Rios
Function com erro:
-- Function: insere_pedido_replication()
-- DROP FUNCTION insere_pedido_replication();
CREATE OR REPLACE FUNCTION insere_pedido_replication()
RETURNS trigger AS
$BODY$
BEGIN
IF TG_OP = 'UPDATE' then
IF (select pedidofaturadosimnao from pedido where serieid = 8
and pedidoid = new.pedidoid) = 'S' then
-- perform dblink_disconnect('fiscal');
perform(dblink_connect('fiscal','host=xmprd port=5432 user=abcglass password=abcglass@ dbname=AbcGlass'));
perform(dblink_exec('fiscal', 'INSERT INTO pedido (pedidoid,
pedidonumero,
pedidoorigem,
pedidoempresaid,
serieid,
pedidoisnfe,
naturezaid,
pedidosaidaentradadata,
pedidocriacaodata,
pedclipessoaid,
pedclienderecoid,
pedclientregaendid,
pedtranspessoaid,
pedtranspessoaendid,
pedtransveiculoplaca,
pedvendpessoaid,
formapgtoid,
condicaopgtoid,
pedidotipo,
pedidofretevalor,
pedidoimpresso,
pedidoobs,
pedidoentreguesimnao,
pedidofaturadosimnao,
pedidocancelado,
pedidoatendoriginal,
pedidooutrasdesp,
canalvendaid) values (
'||vpedido_pedidoid||',
'''||vpedido_pedidonumero||''',
'''||vpedido_pedidoorigem||''',
'''||vpedido_pedidoempresaid||''',
'''||vpedido_serieid||''',
'''||vpedido_pedidoisnfe||''',
'''||vpedido_naturezaid||''',
'''||vpedido_pedidosaidaentradadata||''',
'''||vpedido_pedidocriacaodata||''',
'''||vpedido_pedclipessoaid||''',
'''||vpedido_pedclienderecoid||''',
'''||vpedido_pedclientregaendid||''',
'''||vpedido_pedtranspessoaid||''',
'''||vpedido_pedtranspessoaendid||''',
'''||vpedido_pedtransveiculoplaca||''',
'''||vpedido_pedvendpessoaid||''',
'''||vpedido_formapgtoid||''',
'''||vpedido_condicaopgtoid||''',
'''||vpedido_pedidotipo||''',
'''||vpedido_pedidofretevalor||''',
'''||vpedido_pedidoimpresso||''',
'''||vpedido_pedidoobs||''',
'''||vpedido_pedidoentreguesimnao||''',
'''||vpedido_pedidofaturadosimnao||''',
'''||vpedido_pedidocancelado||''',
'''||vpedido_pedidoatendoriginal||''',
'''||vpedido_pedidooutrasdesp||''',
'''||vpedido_canalvendaid||''')'));
perform dblink_disconnect('fiscal');
END IF;
END IF;
RETURN NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION insere_pedido_replication()
OWNER TO postgres;
======== Function funcionando
-- Function: insere_pessoacat_replication()
-- DROP FUNCTION insere_pessoacat_replication();
CREATE OR REPLACE FUNCTION insere_pessoacat_replication()
RETURNS trigger AS
$BODY$
DECLARE
vpessoa_pessoacatid bigint;
vpessoa_pessoacatdescricao varchar(60);
BEGIN
select pessoacatid into vpessoa_pessoacatid from pessoacategoria where pessoacatid = new.pessoacatid;
select pessoacatdescricao into vpessoa_pessoacatdescricao from pessoacategoria where pessoacatid = new.pessoacatid;
perform dblink_disconnect('fiscal');
perform(dblink_connect('fiscal','host=xmprd port=5432 user=abcglass password=abcglass@ dbname=AbcGlass'));
perform(dblink_exec('fiscal', 'insert into pessoacategoria (pessoacatid, pessoacatdescricao) values ('||vpessoa_pessoacatid||','''||vpessoa_pessoacatdescricao||''')'));
perform dblink_disconnect('fiscal');
RETURN null;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION insere_pessoacat_replication()
OWNER TO postgres;
Gostei + 0
17/01/2019
Thalles Oliveira
<br />
If ''fiscal'' exist perform dblink_disconnect(''fiscal'');<br />
else <br />
perform(dblink_connect(''fiscal'',''host=xmprd port=5432 user=abcglass password=abcglass@ dbname=AbcGlass''));<br />
<br />
perdoe se o código estiver confuso, não sou expert em postGre;
Gostei + 1
Clique aqui para fazer login e interagir na Comunidade :)