我想写条存储过程,我一张表每间隔一小时就取一次数据插入另一张表。但我取的时候怎么才能取这一个小时的最新记录。也就是说,我不想取重复的值。

解决方案 »

  1.   

    取最新数据不难,关键是要定时操作,应该用job,关注——————
      

  2.   

    每次插入的時候記錄插入數據的時間,排JOB執行的時候就可以根據時間來判斷...
      

  3.   

    说的好容易啊。我就要取另一个系统的数据表A。表里面就几个普通的VARCAHR字段。没有主键或唯一键(另一个公司开发的,我没办法改)。我就每小时我判断一个字段是否为空。我也知道用JOB。但取出的数据,上一个小时我也取到了。我不可能再插到新表B中一次啊。我得判断这次取出的数据,把B表没用有的插进去。我取的数据量比较大,希望能有个有效率的办法
      

  4.   

    你可以试试用rowid,下面的语句应该对你有用:
    select dbms_rowid.rowid_object(rowid)  object_id, dbms_rowid.rowid_relative_fno(rowid) file_id,
    dbms_rowid.rowid_block_number(rowid)  block_id ,dbms_rowid.rowid_row_number(rowid)  num from dual
    其中:num到block_id的进位我遇到过27、28,31、32、34、38,但都没有超过100,block_id到file_id的进位我还没遇到过,不过如果不是海量数据应该也够了。
    我的思路是:每次取数时,记录下最后一条记录的dbms_rowid.rowid_block_number(rowid)*100+dbms_rowid.rowid_row_number(rowid)值,由于rowid的值是依次变大的,那么,下一个小时的记录它们的值一定比本次rowid的最大值要大。 over
      

  5.   

    好 十分感谢flyhenry(独行狂客) 好不知道可行不。但衷心感谢你。谢谢,谢谢,谢谢