现在要做的工作时,每天进行数据的插入,插入之前先按表的主键判断新数据在表里面是否存在 存在的话删除原始数据插入新数据,不存在的话直接插入数据 这个存储过程应该怎么写呢 新手求教 求大神稍微写的详细点 
本人刚学存储过程 表的主键是联合主键

解决方案 »

  1.   

    以前怕重复是
      DELETE FROM table   WHERE ETL_DATE = TO_DATE(P_END_DATE_TO, 'YYYY-MM-DD');
      COMMIT;这样是按日期删除数据 但后来发现有些数据会回写 这样只能按主键来删除 怎么写这个语句呢?
      

  2.   

    create or replace pro_test
    as
    v_temp number(10);
    begin
      select count(*) into v_temp from table_name where .....
      if v_temp > 0 THEN
        delete from table_name;
      end if
      insert into table_name.....
    end;
      

  3.   

    PL/SQL里执行DML还要注意自治事务,否则会报ORA-14551错误。