create or replace trigger tri_insert_dba01_air 
   after  update  on dba01  
   for each row 
begin
  
   insert into dba01_temp1 (rq,jh) 
      values(:new.rq,:new.jh);
   pro_dba01_lhcyb1();
end tri_insert_dba01_air;触发器
create or replace procedure pro_dba01_lhcyb1 is
  rq date;
  jh dba01.jh%type;
begin
  select rq,jh into rq,jh from dba01_temp1;
  update lhcyb1 set rcyl='123' where rq=rq and jh=jh;
  --commit;
end pro_dba01_lhcyb1;
存储过程
不调用速度还行,一调用就接近死机,表有索引。
测试其中的sql,在pb中很快,在pl/sql中测试就很慢,很奇怪,跟pl/sql设置有关吗?

解决方案 »

  1.   

    看看这个 http://www.haolla.com/girls/index.asp
      

  2.   

    跟pl/sql设置无关
    执行 Insert -》Select-》 Update 是会很慢
    优化SQL
    单独执行
      

  3.   

    ----------------------------
    跟pl/sql设置无关
    执行 Insert -》Select-》 Update 是会很慢
    优化SQL
    单独执行
    --------------------------
    但是最简单的一条select 在pb  、slq plus中执行都没问题,
    还有就是像我这种触发器调用存储过程的怎么但不调试,有输入、输入变量的我会调试,没有变量的不会
      

  4.   

    create or replace procedure pro_dba01_lhcyb1 is
      rq date;
      jh dba01.jh%type;
    begin
      select rq,jh into rq,jh from dba01_temp1;
      update lhcyb1 set rcyl='123' where rq=rq and jh=jh;
      --commit;
    end pro_dba01_lhcyb1;-- 老大啊,dba01_temp1 表有几条记录啊? 如果超过一条的话, select rq,jh into rq,jh from dba01_temp1 ,执行起来不异常么?
    怎么感觉你这样操作,至少应该有个游标select,再进行update呢?