SQL> create or replace trigger update_price_of_parts
  2  after update of price on parts
  3  for   each row
  4  begin
  5    insert into parts_log values
  6  (:old.pno,user,sysdate,:old.price,:new.price);
  7  end;
  8  /
想问下为什么在old.pno前面加上冒号?

解决方案 »

  1.   

    两点代表绑定变量
    在这里:old表示更新前的值,:new代表更新后的值
      

  2.   

    我是这么认为的:我觉得跟性能关系不是很大。当你需要使用更新前的字段值时,你可以通过这种方式来访问。当然 你完全可以不用:old或者是:new。你完全可以通过reference的关键字自己定义代表这两个词的变量名称,比如:
       create or replace trigger tri_test 
       before insert
       on table_test 
       referencing old as name_old,new as new_name 
       .
       .
       . 
      

  3.   

    绑定变量在不同的地方有不同的作用
    LZ既然问这里的冒号代表什么意思 那#1当然就回答你这代表绑定变量喽LZ你所说的绑定变量提高性能是针对其他情况下而言的
    比如说在SQL语句中适当的使用绑定变量可以减少PARSE
      

  4.   


    固定格式
    :old 旧值 :new 新值!
      

  5.   


    绑定变量的用法,和sqlplus里的用法variable x varchar2(100);
    exec :x := 'test';
    selecct :x from dual;用法类似