我的问题是:A、B两列的数据都存在的情况下,将
A列的数乘80% 和 B列乘20% 后相加 保存到C列中。

解决方案 »

  1.   

    SQL> create table ttt (cola number(10),colb number(10),colc number(10));表已创建。SQL> commit;提交完成。SQL> CREATE OR REPLACE TRIGGER tri_ttt_insupd
      2     BEFORE INSERT OR UPDATE
      3     ON ttt
      4     FOR EACH ROW
      5  DECLARE
      6  BEGIN
      7     IF :NEW.cola IS NOT NULL AND :NEW.colb IS NOT NULL
      8     THEN
      9        :NEW.colc := :NEW.cola + :NEW.colb;
     10     END IF;
     11  END;
     12  
     13  /触发器已创建SQL> insert into ttt(cola,colb) values(10,null);已创建 1 行。SQL> ed
    已写入文件 afiedt.buf  1* insert into ttt(cola,colb) values(null,10)
    SQL> /已创建 1 行。SQL> ed
    已写入文件 afiedt.buf  1* insert into ttt(cola,colb) values(20,10)
    SQL> /已创建 1 行。SQL> commit;提交完成。SQL> select * from ttt;      COLA       COLB       COLC
    ---------- ---------- ----------
            10
                       10
            20         10         30SQL>
      

  2.   

    谢谢 snowy_howe(天下有雪) 
    开始给分