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?