CREATE TABLE events_tbl
(
e_id NUMBER
, e_date DATE
, e_info VARCHAR2(4000)
);
INSERT INTO events_tbl VALUES (43, '2000-01-01 01:10:00', 'event1');
INSERT INTO events_tbl VALUES (44, '2000-01-01 01:15:00', 'event2');
INSERT INTO events_tbl VALUES (45, '2000-01-01 01:20:00', 'event3');
INSERT INTO events_tbl VALUES (46, '2000-01-01 01:25:00', 'event4');
INSERT INTO events_tbl VALUES (47, '2000-01-01 02:10:00', 'event5');
INSERT INTO events_tbl VALUES (48, '2000-01-01 02:15:00', 'event6');
INSERT INTO events_tbl VALUES (49, '2000-01-01 02:20:00', 'event7');
INSERT INTO events_tbl VALUES (50, '2000-01-01 02:25:00', 'event8');
/* table that holds information about sent events */
CREATE TABLE events_sent_tbl
(
s_e_id NUMBER
, s_date DATE
);
INSERT INTO events_sent_tbl VALUES (43, '2000-01-01 02:01:00');
INSERT INTO events_sent_tbl VALUES (44, '2000-01-01 02:02:00');
SELECT *
FROM events_tbl
WHERE TO_NUMBER(TO_CHAR(e_date, 'MMDDHH24MiSS')) BETWEEN 0101010000 AND 0101015959
AND NOT EXISTS
(
SELECT 1
FROM events_sent_tbl
WHERE e_id = s_e_id
)
;
/*
45 2000-01-01 01:20:00 event3
46 2000-01-01 01:25:00 event4
*/
合作:
...在集合中。将 events_tbl 和 events_sent_tbl 读入集合。发送数据并更新集合中的信息。将其与 FORALL 一起转储到 events_sent_tbl 表中。