+ -
当前位置:首页 → 问答吧 → Oracle 领域的前辈们,围观过来,一起拍砖

Oracle 领域的前辈们,围观过来,一起拍砖

时间:2011-09-09

来源:互联网

 
  我要定时扫描、读取一个文件(文件的内容是财务系统下发的各部门及分公司预算条目),将读取的信息插入数据库。

插入数据库这个我已经实现,现在需求有效改动:就是下发的预算可能发生变动(可能是预算金额变动),如果发生了变动(举例来说,前一次下发的预算有A、B、C三条; 这次下发的预算是A、B、D、E 四条;并且其中的预算条目 A 的预算金额较前一次发生了变动)。

  我在扫描后,要将我们系统数据库里的预算信息与新下发的预算信息,进行同步。

我想问一下,这个大体的处理步骤是怎样的?

我现在的想法是:先建一个临时表,每次扫描信息插入这个表前,先将表里的数据清空;然后再插入信息。

数据插入后,再和我们系统存放的预算信息表进行对比,还是用上面的A、B、C、D、E来说明:
  新的预算中没有C,那么我们讲把我们库里C这条的预算金额更新为0;
  新的预算中多了D、E,那么我们将插入D、E到我们的预算表;
  新的预算中A的金额发现了变化,那么我们将对A作更新操作。

如何对比,我想在还没想好,各位有处理过此类问题的,可以给指点一下。




作者: jidu01   发布时间: 2011-09-09

使用merge時,match可以解決A的update;not match可以解決D、E的insert;C要單獨處理delete

作者: nGX20080110   发布时间: 2011-09-09

我是来拍砖的。

作者: xl_smlie   发布时间: 2011-09-09

引用 1 楼 ngx20080110 的回复:
使用merge時,match可以解決A的update;not match可以解決D、E的insert;C要單獨處理delete


merge

作者: inthirties   发布时间: 2011-09-09

引用 1 楼 ngx20080110 的回复:

使用merge時,match可以解決A的update;not match可以解決D、E的insert;C要單獨處理delete


这个正确。
先merge,然后考虑delete

作者: BenChiM888   发布时间: 2011-09-09

热门下载

更多