Em 17-07-2013 11:16, Deliane Andrade escreveu:
Bom dia a todos!
Tenho a seguinte trigger para atualizar dados de uma base1 em outra base2:

_*- TRIGGER :*_

CREATE OR REPLACE FUNCTION sia.func_trg_atualiza_sia_unidade_ensino_dblink (
)
RETURNS trigger AS
$body$
BEGIN
-- Escolha da opção INSERT no banco siig_teste cujo IP é = 192.168.200.41

IF (TG_OP = 'INSERT')
   THEN
           SELECT dblink_exec
         ('dbname= siig_teste
         host = meu ip
         user = postgres
         password = minha senha
         port=5432',

(codigo,codigo_sia_depd_adm,cod_entd_prpr_sia_depd_adm,cod_bairro_pap_unid_geografica,cod_mun_pap_unid_geografica,


codigo_ace_estrut_orgn,codigo_escola,sequencial_anexo,codigo_secretaria,nome
,nome_abreviado,cgc,

codigo_sia_sit_functo,codigo_sia_polo_ue,codigo_abp_imovel,logradouro,numero,complemento,codigo_pap_uf,


cep,fone,fax,ramal,codigo_sia_localizacao,codigo_sia_delm_terreno,codigo_sia_topografia_terreno,


codigo_sia_docm_terreno,codigo_sia_natr_ocupc_predio,area_total,area_construida,area_util,origem_construcao,


ano_construcao,dificil_acesso,motivo_dificil_acesso,nte_bahia,cepes_paraiba,perc_dist_corrente,perc_dist_capital,

           perc_dist_terceiros,ind_inad
,particular_filantropica,setor,paisetor,codigo_pessoa_diretor,codigo_sia_ue_origem_diretor,


nome_abreviado_fonetizar,escola_municipalizada,codigo_municipio,email,cd_escola,bairro,sequencial_anexo_mec,


sequencial_anexo_setor,dt_criacao,ano_letivo_funcionamento,diario_oficial_estado,observacao,distrito,escola_sede_municipio,

           escola_jovem_futuro,ano_extincao)
         VALUES
         (
new.codigo,new.codigo_sia_depd_adm,new.cod_entd_prpr_sia_depd_adm,new.cod_bairro_pap_unid_geografica,new.cod_mun_pap_unid_geografica,

new.codigo_ace_estrut_orgn,new.codigo_escola,new.sequencial_anexo,new.codigo_secretaria,new.nome
,new.nome_abreviado,new.cgc,

new.codigo_sia_sit_functo,new.codigo_sia_polo_ue,new.codigo_abp_imovel,new.logradouro,new.numero,new.complemento,new.codigo_pap_uf,

new.cep,new.fone,new.fax,new.ramal,new.codigo_sia_localizacao,new.codigo_sia_delm_terreno,new.codigo_sia_topografia_terreno,

new.codigo_sia_docm_terreno,new.codigo_sia_natr_ocupc_predio,new.area_total,new.area_construida,new.area_util,new.origem_construcao,

new.ano_construcao,new.dificil_acesso,new.motivo_dificil_acesso,new.nte_bahia,new.cepes_paraiba,new.perc_dist_corrente,
            new.perc_dist_capital,new.perc_dist_terceiros,new.ind_inad
,new.particular_filantropica,new.setor,new.paisetor,new.codigo_pessoa_diretor,

new.codigo_sia_ue_origem_diretor,new.nome_abreviado_fonetizar,new.escola_municipalizada,new.codigo_municipio,new.email,new.cd_escola,

new.bairro,new.sequencial_anexo_mec,new.sequencial_anexo_setor,new.dt_criacao,new.ano_letivo_funcionamento,new.diario_oficial_estado,

new.observacao,new.distrito,new.escola_sede_municipio,new.escola_jovem_futuro,new.ano_extincao'
         );
         RETURN NEW;
END IF;
RETURN NEW;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;


Quando executo o INSERT na base 1 :

*-_- INSERT:_*

INSERT INTO sia.sia_unidade_ensino ("codigo","codigo_sia_depd_adm",
"cod_entd_prpr_sia_depd_adm",
"cod_bairro_pap_unid_geografica", "cod_mun_pap_unid_geografica",
"codigo_ace_estrut_orgn", "codigo_escola",
"sequencial_anexo", "codigo_secretaria", "nome", "nome_abreviado",
"cgc", "codigo_sia_sit_functo",
"codigo_sia_polo_ue", "codigo_abp_imovel", "logradouro", "numero",
"complemento", "codigo_pap_uf", "cep", "fone",
  "fax", "ramal", "codigo_sia_localizacao", "codigo_sia_delm_terreno",
"codigo_sia_topografia_terreno",
   "codigo_sia_docm_terreno", "codigo_sia_natr_ocupc_predio",
"area_total", "area_construida", "area_util",
   "origem_construcao", "ano_construcao", "dificil_acesso",
"motivo_dificil_acesso", "nte_bahia", "cepes_paraiba",
   "perc_dist_corrente", "perc_dist_capital", "perc_dist_terceiros",
"ind_inad", "particular_filantropica", "setor",
    "paisetor", "codigo_pessoa_diretor", "codigo_sia_ue_origem_diretor",
"nome_abreviado_fonetizar", "escola_municipalizada",
     "codigo_municipio", "email", "cd_escola", "bairro",
"sequencial_anexo_mec", "sequencial_anexo_setor", "dt_criacao",
     "ano_letivo_funcionamento", "diario_oficial_estado", "observacao",
"distrito", "escola_sede_municipio",
     "escola_jovem_futuro", "ano_extincao")
VALUES (23395, 'E', NULL, '150300700800267',
'150300700800', 4802, '15144747', '00', '403', 'ESCOLA ESTADUAL DE
ENSINO FUNDAMENTAL E MEDIO TESTE DBLINK',
'EEEFM TESTE DBLINK', NULL, 'ATV', NULL, NULL, 'AV TESTE', '141516',
'CONJ TESTE, QD 39 - DIST INDUSTRIAL', NULL, '67040450',
'(91) 3255-3645', '', '', 'U', NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, True, NULL, True, True, NULL,
  NULL, NULL, 0, False, '001920932130001', '001920900000000', 10755607,
0, NULL, NULL, 43095, '[email protected] <mailto:[email protected]>',
  '09120', 'CENTRO', '00', '00', NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL);

_*- ERRO:*_ dá o seguinte erro :


ERRO:  NEW utilizado em consulta que não é uma regra
CONTEXT:  Error occurred on dblink connection named "unnamed": could not
execute command.
comando SQL "SELECT dblink_exec
         ('dbname= siig_teste
         host = meu ip
         user = postgres
         password = minha senha
         port=5432',

         'INSERT INTO sia.sia_unidade_ensino

(codigo,codigo_sia_depd_adm,cod_entd_prpr_sia_depd_adm,cod_bairro_pap_unid_geografica,cod_mun_pap_unid_geografica,


codigo_ace_estrut_orgn,codigo_escola,sequencial_anexo,codigo_secretaria,nome
,nome_abreviado,cgc,

codigo_sia_sit_functo,codigo_sia_polo_ue,codigo_abp_imovel,logradouro,numero,complemento,codigo_pap_uf,


cep,fone,fax,ramal,codigo_sia_localizacao,codigo_sia_delm_terreno,codigo_sia_topografia_terreno,


codigo_sia_docm_terreno,codigo_sia_natr_ocupc_predio,area_total,area_construida,area_util,origem_construcao,


ano_construcao,dificil_acesso,motivo_dificil_acesso,nte_bahia,cepes_paraiba,perc_dist_corrente,perc_dist_capital,

           perc_dist_terceiros,ind_inad
,particular_filantropica,setor,paisetor,codigo_pessoa_diretor,codigo_sia_ue_origem_diretor,


nome_abreviado_fonetizar,escola_municipalizada,codigo_municipio,email,cd_escola,bairro,sequencial_anexo_mec,


sequencial_anexo_setor,dt_criacao,ano_letivo_funcionamento,diario_oficial_estado,observacao,distrito,escola_sede_municipio,

           escola_jovem_futuro,ano_extincao)
         VALUES
         (
new.codigo,new.codigo_sia_depd_adm,new.cod_entd_prpr_sia_depd_adm,new.cod_bairro_pap_unid_geografica,new.cod_mun_pap_unid_geografica,

new.codigo_ace_estrut_orgn,new.codigo_escola,new.sequencial_anexo,new.codigo_secretaria,new.nome
,new.nome_abreviado,new.cgc,

new.codigo_sia_sit_functo,new.codigo_sia_polo_ue,new.codigo_abp_imovel,new.logradouro,new.numero,new.complemento,new.codigo_pap_uf,

new.cep,new.fone,new.fax,new.ramal,new.codigo_sia_localizacao,new.codigo_sia_delm_terreno,new.codigo_sia_topografia_terreno,

new.codigo_sia_docm_terreno,new.codigo_sia_natr_ocupc_predio,new.area_total,new.area_construida,new.area_util,new.origem_construcao,

new.ano_construcao,new.dificil_acesso,new.motivo_dificil_acesso,new.nte_bahia,new.cepes_paraiba,new.perc_dist_corrente,
            new.perc_dist_capital,new.perc_dist_terceiros,new.ind_inad
,new.particular_filantropica,new.setor,new.paisetor,new.codigo_pessoa_diretor,

new.codigo_sia_ue_origem_diretor,new.nome_abreviado_fonetizar,new.escola_municipalizada,new.codigo_municipio,new.email,new.cd_escola,

new.bairro,new.sequencial_anexo_mec,new.sequencial_anexo_setor,new.dt_criacao,new.ano_letivo_funcionamento,new.diario_oficial_estado,

new.observacao,new.distrito,new.escola_sede_municipio,new.escola_jovem_futuro,new.ano_extincao'
         )"
PL/pgSQL function sia.func_trg_atualiza_sia_unidade_ensino_dblink() line
7 at comando SQL

Ainda não consegui visualizar qual é o problema.
Alguém teria alguma sugestão?

Tem alguma regra (rule) ou gatilho (trigger) na tabela sia.sia_unidade_destino no banco remoto?

Traga-nos o log do banco remoto se puder, por favor.

[]s

__________________________________
Flavio Henrique A. Gurgel
Líder de Projetos Especiais
Consultoria, Projetos & Treinamentos 4LINUX
Tel1: +55-11.2125-4747 ou 2125-4748
www.4linux.com.br
email: [email protected]
______________________________
FREE SOFTWARE SOLUTIONS
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a