CREATE OR REPLACE TRIGGER trigger_name
AFTER update ON xdepartment01
FOR EACH ROW
DECLARE
BEGIN
UPDATE xdepartment01 SET TREEID = :new.treeid||substr(:old.treeid,length(:old.treeid)-1,2)
WHERE TREEID LIKE ''''||:old.treeid ||'%''' ;
END;这就是当我修改本部门的treeid后,下级部门的treeid自动变过来啊
AFTER update ON xdepartment01
FOR EACH ROW
DECLARE
BEGIN
UPDATE xdepartment01 SET TREEID = :new.treeid||substr(:old.treeid,length(:old.treeid)-1,2)
WHERE TREEID LIKE ''''||:old.treeid ||'%''' ;
END;这就是当我修改本部门的treeid后,下级部门的treeid自动变过来啊
解决方案 »
- oracle 中 把IF A=1 THEN RETURN ‘男’ ELSE RETURN ‘女’ END IF; 语句用一个函数表达出来
- 求一联合sql语句,谢谢大家.
- 如何取出oracle中某个表的数据结构,也就是所有列名,并放到一个dataset or datatable中?
- 按日期查询数据表记录?超难度!!!
- 为啥告诉我目标路径错误啊???
- 请问怎么样把一个字段设为主键(Oracal9i)?
- 小妹是个初学者?有问题向各位大哥请教!^-^
- 求解一个sql语句:)在线等.....
- 请教高手:怎么查oracle实时用户连接数!谢!
- 这条语句什么意思?
- 求助:Oracle分页的小问题
- 请问使用动态SQL的效率比静态SQL高吗?
可以使用自治事务
CREATE OR REPLACE TRIGGER trigger_name
AFTER update ON xdepartment01
FOR EACH ROW
DECLARE
pragma autonomous_transaction;
BEGIN
UPDATE xdepartment01 SET TREEID = :new.treeid||substr(:old.treeid,length(:old.treeid)-1,2)
WHERE TREEID LIKE ''''||:old.treeid ||'%''' ;
commit;
END;
/
试一下