实用文档
SELECT * FROM EMP WHERE EMPNO = 7876; UPDATE EMP SET SAL = SAL*1.08 WHERE EMPNO = 7876; COMMIT; SELECT * FROM EMP WHERE EMPNO = 7876; 7.2.4【训练1】 CREATE OR REPLACE TRIGGER CHECK_TIME BEFORE 标准
实用文档
UPDATE OR INSERT OR DELETE ON EMP BEGIN IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR TO_CHAR(SYSDATE,'HH24')< '08' OR TO_CHAR(SYSDATE,'HH24')>='17' THEN RAISE_APPLICATION_ERROR(-20500,'非法时间修改表错误!'); END IF; END; UPDATE EMP SET SAL=3000 WHERE EMPNO=7369; 标准
实用文档
【练习1】设计一个语句级触发器,限定只能对数据库进行修改操作,不能对数据库进行插入和删除操作。在需要进行插入和删除时,将触发器设置为无效状态,完成后重新设置为生效状态。 CREATE OR REPLACE TRIGGER onlyupdate BEFORE UPDATE OR INSERT OR DELETE ON EMP BEGIN IF deleting or inserting then RAISE_APPLICATION_ERROR(-20500,'非法操作!'); END IF; END; 7.3 【训练1】 CREATE OR REPLACE TRIGGER NODROP_EMP BEFORE DROP ON SCHEMA BEGIN IF Sys.Dictionary_obj_name='EMP' THEN RAISE_APPLICATION_ERROR(-20005,'错误信息:不能删除emp表!'); END IF; END; 标准
实用文档
DROP TABLE emp; 7.4 【训练1】 CREATE VIEW emp_name AS SELECT ename FROM emp; 标准
实用文档
CREATE OR REPLACE TRIGGER change_name INSTEAD OF INSERT ON emp_name DECLARE V_EMPNO NUMBER(4); BEGIN SELECT MAX(EMPNO)+1 INTO V_EMPNO FROM EMP; INSERT INTO emp(empno,ename) VALUES(V_EMPNO,:new.ename); END; 标准