利用触发器来触发一个PROCEDURE,
把修改数据的动作写在PROCEDURE来完成,
如果写入的字表被删掉了,或是其他问题发生了,
在PROCEDURE后面加入
exception
when no_data_found then
null ;
WHEN OTHERS THEN
NULL ;
这样就可以处理你遇到的情况了。
当然这样效率也许有些受到影响。
把修改数据的动作写在PROCEDURE来完成,
如果写入的字表被删掉了,或是其他问题发生了,
在PROCEDURE后面加入
exception
when no_data_found then
null ;
WHEN OTHERS THEN
NULL ;
这样就可以处理你遇到的情况了。
当然这样效率也许有些受到影响。
解决方案 »
- oracle spatial与jdbc的问题
- 用存储过程还是触发器
- 如何通过utl_tcp实现聊天的功能
- CONN /AS SYSDBA
- 请教:如何存储图片,检索图片以完成一个在线购书系统
- REDHAT9下安装ORACLE9i,内存为256机子的可以一试么?
- 利用oracle自带的database config assiant新建数据库很大,有900M,我想建立一个空的数据库如何处理阿
- 创建一个用户
- 请问各位高手应该怎样处理此种情况。多谢了!
- 我安装了Oracle8i后,为什么登陆Oracle 企业管理器后,为什么导航器的各个节点都是空的
- 大家讨论一下:EJB vs. DB store procedure
- 请教一个统计SQL语句
before insert or update on 主表
for each row
declare
num number;
begin
select count(1) into num from user_table where table_name='子表';
if num>0 then
update 子表 set col1_name=:new.col1_name,..... where id=:new.id;
end if;
end;
/
create trigger name_tri
before insert or update on Ö÷±í
for each row
declare
num number;
sql_str varchar(1000);
begin
select count(1) into num from user_table where table_name='子表';
if num>0 then
sql_str := 'update 子表 set col1_name='||:new.col1_name||' where id='||:new.id;
execute immediate sql_str;
end if;
end;
/