-> Tenho campo ID_NOTA é concatenado nf+serie+cnpj
> neste registro que esta sendo atualizado através deste ID_NOTA eu preciso de informação de outro campo NROCTO qual erá usado para dar baixa em outra tabela GT_CTO, e por fim concatenando os ID_NOTA + NROCTO farei a inserção na tabela Histórico.
A maior dificuldade esta sendo em como pegar este campo NROCTO justamento do registro que esta sendo atualizado via ID_NOTA, como não consegui fiz este mesclado update tabela GT_CTO e select na tabela GT_NOTAs tudo junto, e na sequencia faço insert na tabela de histórico.
A principio poderá funcionar, mas ocorre os 2 erros abaixo, já mudei os encerramentos de linhas para varias posições e em cada uma delas da erros diferentes,
De acordo com as mensagens são erros claros mas por falta de experiencia não estou encontrando.
Desde já agradeço a ajuda.
Mário Medeiros
Os erros são:
Erro(19,9): PL/SQL: SQL Statement ignored
Erro(20,13): PL/SQL: ORA-00933: comando SQL não encerrado adequadamente
create or replace TRIGGER TRG_BXCTO_HISTO
AFTER INSERT OR UPDATE ON TB_INFOGED
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
BEGIN
UPDATE GT_NOTAS SET
NT_DT_ENT = :NEW.DATA_RECEBIMENTO,
NT_DT_LANCAM = TO_DATE(TO_CHAR(systimestamp, 'DD/MM/YYYY HH24:MI:SS'), 'DD/MM/YYYY HH24:MI:SS'),
NT_OBSENT1 = :NEW.OCORRENCIA,
NT_SIGLA_DT_ENT = 'INF',
NT_POSICAO = '5',
NT_USER_ENT = 'INFOGED',
NT_FLG_muito = 0
WHERE NT_POSICAO <> 3 AND NT_NEY = :NEW.ID_NOTA;
----------------------------------------------------------------------------------------------------------------------------
IF :NEW.ID_NOTA IS NOT NULL THEN
UPDATE GT_CTO SET DS_POSICAO = "3", DS_PE_TIPO = :NEW.OCORRENCIA
SELECT NT_NUMCTO FROM GT_NOTAS
WHERE GT_NOTAS.NT_CGCREM = Substr(:NEW.ID_NOTA,((Length(:NEW.ID_NOTA) - 14) + 1), 14)
AND GT_NOTAS.NT_SERIE = Substr(:NEW.ID_NOTA,((Length(:NEW.ID_NOTA) - 17) + 1), 3)
AND GT_NOTAS.NT_NOTA = Substr(:NEW.ID_NOTA,((Length(:NEW.ID_NOTA) - 17) + 1), 3)
WHERE GT_CTO.DS_NO_CON = GT_NOTAS.NT_NUMCTO;
INSERT INTO GT_HISTO (
HI_KEY,
HI_CTO,
HI_DATA,
HI_TIPO,
HI_DATA_EV,
HI_OCORRENCIA,
HI_DESCR,
HI_FLG_muito,
HI_FLG_WEB,
HI_HORA,
HI_USUARIO,
HI_STATUS,
HI_HR,
HI_CGCREM,
HI_ORIGEM)
VALUES (:NEW.ID_NOTA,
'ACERTAR999',
to_char(sysdate, 'dd/mm/yyyy'),
1,
to_char(sysdate, 'dd/mm/yyyy'),
:NEW.OCORRENCIA,
FUNC_OCORRENCIA(:NEW.OCORRENCIA),
'0',
'0',
to_char(sysdate, 'hh24:mm'),
'TRIGGER',
90,
to_char(sysdate, 'hh24:mm'),
Substr(:NEW.ID_NOTA,((s_tam - 14)+ 1), 14),
0);
END IF;
END;