在行级触发器中作一些判断,如果符合某些条件,就放弃插入当前行
:new = null ?
:new = null ?
解决方案 »
- 关于PLSQL中使用DB_LINK写表,速度很慢--请教
- 高手请入:java调用存储过程(答的好的话狂给分。。。)
- 关于两地数据库差异性分析
- 关于将表中一个列的值以多个列的形式展示出来的问题?
- insert all/first应该在什么情况下应用
- 出错:ORA-12154: TNS:could not resolve service name
- oracle执行超时的errorcode
- 做数据挖掘用Sql Server还是oracle比较好实现一点?
- 速度问题?关于三个数据库
- 单机装oracle8。0。5服务总是启动不了是怎么回事啊,
- oracle 停止 job
- 急!!!~多条记录 连续日期的 合并问题
raise_application_error
create or replace trigger trg_emp
before insert on emp
for each row
when(new.empno is null) --添加你触发器满足的条件
begin
raise_application_error(-20001,'empno is null!');
end;
有没有真的只针对each row,如果符合某些条件就只放弃当前行, 但是不影响其他正常数据行的方法呢?
before insert on test1
for each row
declare
int_count number;
-- local variables here
begin
if (mod(:new.id, 5) = 0) then
raise_application_error(-20001,'error');
end if;
end tri_test1;
/
begin
for i in 1..10
loop
begin
insert into test1 values(i);
exception
when others then
null;
end;
end loop;
commit;
end;
/
select * from test1;
ID
----------
1
2
3
4
6
7
8
9
8 rows selected