在写一个BEFORE INSERT 触发器,
将 新记录写入表中,若原表中有该记录相同的主键,则修改;若没有,则插入。
现在的写法如下:
CREATE TRIGGER TRG_TEST BEFORE INSERT ON TBL_NAME FOR EACH ROW
BEGIN
MERGE INTO TBL_NAME A
USING NEW B
ON (A.ID=B.ID)
WHEN MATCHED THEN
......
WHEN NOT MATCHED THEN
......
现在的问题是对NEW的使用,总是提示有编译错误,请问改怎么用这个NEW呢?
将 新记录写入表中,若原表中有该记录相同的主键,则修改;若没有,则插入。
现在的写法如下:
CREATE TRIGGER TRG_TEST BEFORE INSERT ON TBL_NAME FOR EACH ROW
BEGIN
MERGE INTO TBL_NAME A
USING NEW B
ON (A.ID=B.ID)
WHEN MATCHED THEN
......
WHEN NOT MATCHED THEN
......
现在的问题是对NEW的使用,总是提示有编译错误,请问改怎么用这个NEW呢?
解决方案 »
- 创建回滚段时minextents 和 maxextents 的值是什么意呀是什么的最大值和最小值呀。
- 知道么,当一个表建立时,谁是它的所有者?
- 运行不出结果 是不是进了死循环什么的啊 求高手解决
- oracle 分区方式:list和range哪个更好 ?
- 求助,存储过程调用出错
- php 向oracle中插不进去数据
- 关于Oracle id自动加一功能的实现
- oracle 企业管理器的快捷方式是什么?(谢谢!)
- 存储过程能返回记录集吗??
- 无法创建一个表
- 只要以administrator身份登录计算机,不用用户名和密码就能登录ORACLE。
- TOAD查看数据库表Scripts时提示ORA-00918:未明确定义列
如果我用SELECT * FROM NEW 可以吗?
你可以尝试
select :new.id, :new.... from dual;
NEW这个不是一个表吗?
select :new from dual;
这样做还是不行,提示是有编译错误,
怎么回事?