Alguém pode me dar uma dica? Seguinte:
Tenho esta estrutura JSON,, um campo string, que será inserido na tabela "Atualizar". Então toda vez que for inserido uma linha nesta tabela , quero disparar um gatilho chamando minha procedure que fara insert em algumas tabelas, certo? Estou quebrando cabeça, como eu faço, pois no momento do disparo do gatilho , eu quero passar o CNPJ que inclusive vem desta string, que será parâmetro da chamada da procedure....Eu tentei porém não esta dando certo. Se puderem ajudar agradeço...
---estrutura JSON------------
'{
"ID_PROCESSO" : "301501",
"ID_CLIETE" : "PESSOA101",
"CNPJ" : "000.000.001.20",
"DSC_PROCESSO" : "HOMOLOGAÇAO",
"DSC_NOME" : "Ricardo Santos",
}');
CREATE TABLE ATUALIZAR
(ID_PROCESSO VARCHAR2(40) not null,
JSON CLOB not null,
CONSTRAINT atualizar_pk PRIMARY KEY (id),
CONSTRAINT atualizar_chk CHECK (Json IS JSON));
BEGIN
INSERT INTO atualizar (id_processo, dta_insercao, status, json)
VALUES (atualiza_SEQ.nextval, sysdate, 'Inserido',
'{
"ID_PROCESSO" : "PROP151",
"ID_CLIETE" : "PESSOA101",
"CNPJ" : "000.000.001.20",
"DSC_PROCESSO" : "HOMOLOGAÇAO",
"DSC_NOME" : "Ricardo Sanos",
}');
COMMIT;
END;
CREATE OR REPLACE TRIGGER ATUALIZAR
BEFORE UPDATE OR INSERT ON ATUALIZAR
FOR EACH ROW
DECLARE
v_CPF varchar2(40);
BEGIN
SELECT a.json.cpfj into v_CPF
FROM ATUALIZAR a WHERE id=(SELECT max(ID_PROCESSO) FROM ATUALIZAR e);
-- chama uma procedure passando os dados inseridos pra procedure.
.PRC_ATUALIZA (v_CPF);
END;
att,
Kátia Dias