olá , Sou novato aqui precisando urtentissimo de uma ajuda, Tenho que gerar uma tabela de apontamentos partindo de uma tabela de lancamentos da folha ( eventos ) onde cada funcionario devera aparecer apenas uma vez, para isso tenho como chave o códiog da empresa, funcionario e competencia, mas ao executar não grava nada e nem da alguma mensagem. alguém poderia me ajudar ? não sei onde estou errando . Segue o código: --================================================================ -- DELETANDO DELETANDO A TABELA--================================================================ DROP TABLE APONTAMENTOSFOLHA; ----------------------------------------------------------------- --CRIANDO TABELA COM A CHAVE --================================================================ CREATE TABLE apontamentosfolha ( ID_FUNC Serial NOT NULL, EMPRESA varchar(06), FUNCIONARIO varchar(06), COMPETENCIA varchar(06), COMISSOES INTEGER, HORASEXTRAS INTEGER, FALTASEMHORAS INTEGER, FALTASEMDIAS INTEGER, ADICIONALNOTURNO INTEGER, AVISOPREVIO INTEGER, CONTRASSISTENCIAL INTEGER, CONTRCONFEDERATIVA INTEGER, IRFERIASIMPOSTORETIDO INTEGER, IRFERIASINSS INTEGER); ALTER TABLE apontamentosfolha ADD CONSTRAINT pk_func PRIMARY KEY (EMPRESA,FUNCIONARIO,COMPETENCIA); CREATE UNIQUE INDEX uniq_func ON apontamentosfolha USING btree (EMPRESA,FUNCIONARIO,COMPETENCIA); --=============================================================================== -- Incluir na tabela apontamentosfolha que foi criada, as informações da tabela -- lancamentosfolha apenas com os campos empresa, competencia, e funcionarios sem -- repetição e as demais informações devem estar zeradas. --=============================================================================== CREATE OR REPLACE FUNCTION set_apontamentosfolha( _empresa VARCHAR, _funcionario VARCHAR, _competencia VARCHAR ) RETURNS INTEGER AS $$ DECLARE iId_func INTEGER; BEGIN BEGIN INSERT INTO APONTAMENTOSFOLHA (EMPRESA, FUNCIONARIO, COMPETENCIA, COMISSOES, HORASEXTRAS, FALTASEMHORAS, FALTASEMDIAS, ADICIONALNOTURNO, AVISOPREVIO, CONTRASSISTENCIAL, CONTRCONFEDERATIVA, IRFERIASIMPOSTORETIDO, IRFERIASINSS ) VALUES (lancamentosfolha.empresa, lancamentosfolha.funcionario, lancamentosfolha.competencia, '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' ) RETURNING id_func INTO iId_func; EXCEPTION WHEN UNIQUE_VIOLATION THEN UPDATE apontamentosfolha SET apontamentosfolha.comissoes = lancamentosfolha.valorcalculado WHERE apontamentosfolha.empresa = '000257' AND apontamentosfolha.competencia = '122010' RETURNING id_func INTO iIdfunc; END; RETURN iId_func; END; $$ LANGUAGE 'plpgsql' VOLATILE; ================================================================================== -- LISTANDO PARA CONFERENCIA ==========================-- select * from apontamentosfolha WHERE EMPRESA = '000257' AND competencia = '122010'; --============================================================================================================-- select * from lancamentosfolha WHERE EMPRESA = '000257' AND competencia = '122010'; --============================================================================================================--