create or replace trigger ...
before insert --Oracle里支持before关键字
is
...
before insert --Oracle里支持before关键字
is
...
解决方案 »
- oracle中如何批量更新某列数据
- 怎么才能用Normal登录
- 远程oracle数据库能ping通但配置net时提示“测试失败-操作超时”?请教问题何在?
- PL\SQL, 用insert语句插入一条包含&的记录,实际插入内容不一致,怎么解决?
- 求一个巨简单的查询(但对速度有严格要求)求SQL急速圣手指点!
- 求oracle中获取一个表的所有字段名及数据类型的sql语句
- 急!!!错误:通信通道的文件结束
- 我的oracle9i不能装呀,请帮忙!!!
- oracle如何调用 C/C++ DLL中的输出函数??
- 请问谁能提供toad的中文说明,太难懂了,多谢!!
- 如何判断数据集是否为null?
- Oracle9i 与 Sql server 能共存在同一台计算机上吗?
大哥,我知道Oracle里支持before关键字,就是说在insert语句插入表前就执行触发器,
但好像和我的问题没什么联系吧???能否详细解释一下,???具体该怎么做呢??
我想问的是:oracle 不可以实现 sqlserver的 instead of 触发器 功能吗?
BEFORE INSERT
ON U_TABLE
FOR EACH ROW
BEGIN
BEGIN
執行語句動作;
COMMIT;
END;
在這可以寫一產生异常語句,使table插入语句不执行.
END;
BEFORE INSERT
ON U_TABLE
FOR EACH ROW
BEGIN
BEGIN
:New.sID := '1234';--来更改sID的插入值为1234
END;
在這可以寫一產生异常語句,使table插入语句不执行.
END; Oracle触发器不能使用事务控制语句,包括COMMIT、ROLLBACK或SAVEPOINT。
当声明触发器的表中有外键约束时,如果将定义触发器的表和需要作为DELETE CASCADE参考完整性限制的结果进行更新的表称为变化表,则在此触发器主体中的SQL语句不允许读取或修改触发语句的任何变化表。
raise_application_error(-20001, 'bu cha ru!');来实现好了。
这里的-20001可以为-20001~-20999中任意值。属于用户自定义报错的SQLCODE。