我想在触发器里面做一个检查,如果要删除id='1'的数据就立刻禁止这次删除操作,该如何做。通过raise exception是否可以?
解决方案 »
- 有关于批量增加数据库数据的SQL语句,麻烦大牛们给点快速的SQL语句
- 判断当前日期来决定是否执行sql 求助求助!!
- 高手请进:导入dmp 文件时提示ora-12547错误
- 求教:ORA-01427: 单行子查询返回多个行
- 求一条oracle的查询语句!
- 请教!如何删除单独组件?
- 老古董-oracle5 for dos 的启动问题
- 为什么只显示一条记录??
- ===PL/SQL中,变量的值超过Varchar2的最大限度,即32767了,怎么办?===
- Pro*C中可以定义数组吗?(在线等待)
- 请问哪儿有SQL语句性能优化的比较全面的资料啊?
- oracle中新建表中要让日期字段的默认值是当前日期怎么做?
加上exception的相应处理(rollback)
触发器里面可以执行commit和rollback吗?我记不清楚了,好像有个什么东东里面不能执行commit的,是什么呀?
以及DDL操作
以及DDL操作
09:02:23 2 before insert on tb
09:02:34 3 for each row
09:02:37 4 begin
09:02:42 5 null;
09:02:44 6 commit;
09:02:46 7 end trg_tb;
09:02:50 8 /触发器已创建已用时间: 00: 00: 00.50
09:02:50 SQL> insert into tb(col1) values('a');
insert into tb(col1) values('a')
*
ERROR 位于第 1 行:
ORA-04092: COMMIT 不能在触发器中
ORA-06512: 在"TEMP.TRG_TB", line 3
ORA-04088: 触发器 'TEMP.TRG_TB' 执行过程中出错
已用时间: 00: 00: 00.79
09:03:08 SQL>