CREATE OR REPLACE TRIGGER nome_trigger_001
BEFORE INSERT OR DELETE OR UPDATE
ON nome_tabela
REFERENCING NEW AS NEW OLD AS OLD
BEGIN
IF(USER <> nome_usuario_aplicacao)THEN
RAISE_APPLICATION_ERROR(-20001,'Só é possível INSERIR, ALTERAR OU EXCLUIR os registros pela aplicação.');
END IF;
END;
Bloquear a execução de scripts nas tabelas e forçar o usuário a usar a aplicação - Oracle
Criando Trigger Para Controlar Sequence em Coluna PK - Oracle
Posted by Leonel Casado
CREATE OR REPLACE TRIGGER nome_trigger_001
BEFORE INSERT OR DELETE OR UPDATE
ON nome_tabela
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF(INSERTING)THEN
IF( USER <> nome_usuario_aplicacao)THEN
RAISE_APPLICATION_ERROR(-20001,'Só é possível INSERIR os registros pela aplicação.');
END IF;
SELECT nome_sequence.NEXTVAL
INTO :NEW.SEQ
FROM DUAL;
END IF;
END;
Oracle - Trigger
Post muito bom sobre criação e comandos para manipular trigger.
Ex:
SELECT trigger_name, trigger_type, triggering_event, table_name, referencing_names, status, trigger_body
FROM user_triggers
WHERE trigger_name = 'nome_da_trigger';
http://www.linhadecodigo.com.br/Artigo.aspx?id=322