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]',
 '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?
Agradeço a atenção.
Att,
Deliane Andrade
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a