我需要使用 sqlplus 从Oracle 11表中定期提取数据。例如,我每天都需要提取插入该表中的新行。
在具有主键(例如 RECORD_ID )的表上(假设它是增量插入的),该查询将是:
SELECT * from TABLE WHERE RECORD_ID > &LAST_RECORD_ID_FROM_PREVIOUS_QUERY
在带有 RECORD_DATE 时间戳的表上,类似地可以这样做:
SELECT * from TABLE WHERE RECORD_DATE > &LAST_RECORD_DATE_FROM_PREVIOUS_QUERY
我的问题是:在没有时间戳记且没有可用增量列的情况下该如何做?可以使用 ROWID 来实现吗?
答案 0 :(得分:2)
一种方法是启用闪回,然后您可以执行以下操作:
SELECT * FROM table_name
MINUS
SELECT * FROM table_name AS OF TIMESTAMP SYSTIMESTAMP - INTERVAL '1' DAY;
答案 1 :(得分:0)
我怀疑没有简单的解决方案。它必须是以下之一:
不幸的是,在我的环境中,这些方法都不可行。结案了!