CREATE OR REPLACE TRIGGER "EFT_NOM".cg$BUR_DOCUMENTS BEFORE UPDATE ON DOCUMENTS FOR EACH ROW DECLARE cg$rec cg$DOCUMENTS.cg$row_type; cg$ind cg$DOCUMENTS.cg$ind_type; cg$old_rec cg$DOCUMENTS.cg$row_type; BEGIN -- Application_logic Pre-Before-Update-row <> -- Application_logic Pre-Before-Update-row << End >> -- Load cg$rec/cg$ind values from new cg$rec.DOCU_ID := :new.DOCU_ID; cg$ind.DOCU_ID := (:new.DOCU_ID IS NULL AND :old.DOCU_ID IS NOT NULL ) OR (:new.DOCU_ID IS NOT NULL AND :old.DOCU_ID IS NULL) OR NOT(:new.DOCU_ID = :old.DOCU_ID) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).DOCU_ID := :old.DOCU_ID; -- Warning: Column BLOB_CONTENT is of type BLOB and not allowed in triggers cg$ind.BLOB_CONTENT := FALSE; cg$rec.CONTENT_TYPE := :new.CONTENT_TYPE; cg$ind.CONTENT_TYPE := (:new.CONTENT_TYPE IS NULL AND :old.CONTENT_TYPE IS NOT NULL ) OR (:new.CONTENT_TYPE IS NOT NULL AND :old.CONTENT_TYPE IS NULL) OR NOT(:new.CONTENT_TYPE = :old.CONTENT_TYPE) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).CONTENT_TYPE := :old.CONTENT_TYPE; cg$rec.LAST_UPDATED := :new.LAST_UPDATED; cg$ind.LAST_UPDATED := (:new.LAST_UPDATED IS NULL AND :old.LAST_UPDATED IS NOT NULL ) OR (:new.LAST_UPDATED IS NOT NULL AND :old.LAST_UPDATED IS NULL) OR NOT(:new.LAST_UPDATED = :old.LAST_UPDATED) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).LAST_UPDATED := :old.LAST_UPDATED; cg$rec.MIME_TYPE := :new.MIME_TYPE; cg$ind.MIME_TYPE := (:new.MIME_TYPE IS NULL AND :old.MIME_TYPE IS NOT NULL ) OR (:new.MIME_TYPE IS NOT NULL AND :old.MIME_TYPE IS NULL) OR NOT(:new.MIME_TYPE = :old.MIME_TYPE) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).MIME_TYPE := :old.MIME_TYPE; cg$rec.NAME := :new.NAME; cg$ind.NAME := (:new.NAME IS NULL AND :old.NAME IS NOT NULL ) OR (:new.NAME IS NOT NULL AND :old.NAME IS NULL) OR NOT(:new.NAME = :old.NAME) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).NAME := :old.NAME; cg$rec.DOC_SIZE := :new.DOC_SIZE; cg$ind.DOC_SIZE := (:new.DOC_SIZE IS NULL AND :old.DOC_SIZE IS NOT NULL ) OR (:new.DOC_SIZE IS NOT NULL AND :old.DOC_SIZE IS NULL) OR NOT(:new.DOC_SIZE = :old.DOC_SIZE) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).DOC_SIZE := :old.DOC_SIZE; cg$rec.DAD_CHARSET := :new.DAD_CHARSET; cg$ind.DAD_CHARSET := (:new.DAD_CHARSET IS NULL AND :old.DAD_CHARSET IS NOT NULL ) OR (:new.DAD_CHARSET IS NOT NULL AND :old.DAD_CHARSET IS NULL) OR NOT(:new.DAD_CHARSET = :old.DAD_CHARSET) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).DAD_CHARSET := :old.DAD_CHARSET; cg$rec.DESCRIPTION := :new.DESCRIPTION; cg$ind.DESCRIPTION := (:new.DESCRIPTION IS NULL AND :old.DESCRIPTION IS NOT NULL ) OR (:new.DESCRIPTION IS NOT NULL AND :old.DESCRIPTION IS NULL) OR NOT(:new.DESCRIPTION = :old.DESCRIPTION) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).DESCRIPTION := :old.DESCRIPTION; cg$rec.LANGUAGE := :new.LANGUAGE; cg$ind.LANGUAGE := (:new.LANGUAGE IS NULL AND :old.LANGUAGE IS NOT NULL ) OR (:new.LANGUAGE IS NOT NULL AND :old.LANGUAGE IS NULL) OR NOT(:new.LANGUAGE = :old.LANGUAGE) ; cg$DOCUMENTS.cg$table(cg$DOCUMENTS.idx).LANGUAGE := :old.LANGUAGE; cg$DOCUMENTS.idx := cg$DOCUMENTS.idx + 1; if not (cg$DOCUMENTS.called_from_package) then cg$DOCUMENTS.validate_arc(cg$rec); cg$DOCUMENTS.validate_domain(cg$rec, cg$ind); cg$DOCUMENTS.validate_domain_cascade_update(cg$old_rec); cg$DOCUMENTS.upd(cg$rec, cg$ind, FALSE); cg$DOCUMENTS.called_from_package := FALSE; end if; -- Warning: Column BLOB_CONTENT is of type BLOB and not allowed in triggers :new.CONTENT_TYPE := cg$rec.CONTENT_TYPE; :new.LAST_UPDATED := cg$rec.LAST_UPDATED; :new.MIME_TYPE := cg$rec.MIME_TYPE; :new.NAME := cg$rec.NAME; :new.DOC_SIZE := cg$rec.DOC_SIZE; :new.DAD_CHARSET := cg$rec.DAD_CHARSET; :new.DESCRIPTION := cg$rec.DESCRIPTION; :new.LANGUAGE := cg$rec.LANGUAGE; -- Application_logic Post-Before-Update-row <> -- Application_logic Post-Before-Update-row << End >> END; /