1

有一个TMP_OA_PSTN_CMP_11035带有字段的临时表:

ACTION_OBJID NUMBER,
CONTRACT_OBJID NUMBER,
STATUS varchar2(40),
UPDATE_DATE DATE

这包含 700 万个数据。我想创建七个不同的临时表,其中的数据来自 TMP_OA_PSTN_CMP_11035,按 action_objid 排序,每个表包含 100 万条记录。ACTION_OBJID 列不是序列。

我尝试使用 rownum 但输入随机数据。

对于 EG:

Temp1:包含action_objid的数据从5 ,8...到1100000(因为action_objid不是一个序列,这就是100万个数据)。同样,对于其他 6 个临时表。我正在使用oracle 10g。

4

1 回答 1

1

怎么样

CREATE TABLE TEMP_TABLE_1
  SELECT *
    FROM (SELECT *
            FROM TMP_OA_PSTN_CMP_11035
            WHERE ACTION_OBJID > 0
            ORDER BY ACTION_OBJID)
    WHERE ROWNUM <= 1000000

然后对其他每个临时表重复上述操作,替换WHERE ACTION_OBJID > 0(SELECT MAX(ACTION_OBJID) FROM name of previous temp table). 所以对于 TEMP_TABLE_2 语句将是

CREATE TABLE TEMP_TABLE_2
  SELECT *
    FROM (SELECT *
            FROM TMP_OA_PSTN_CMP_11035
            WHERE ACTION_OBJID > (SELECT MAX(ACTION_OBJID) FROM TEMP_TABLE_1)
            ORDER BY ACTION_OBJID)
    WHERE ROWNUM <= 1000000

分享和享受。

于 2012-11-07T00:58:15.257 回答