1

フィールドを持つ一時テーブルTMP_OA_PSTN_CMP_11035があります:

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

これには700万のデータが含まれています。action_objidでソートされたTMP_OA_PSTN_CMP_11035のデータを使用して、それぞれ100万のレコードを含む7つの異なる一時テーブルを作成します。列ACTION_OBJIDはシーケンスではありません。

rownumを使用してみましたが、ランダムなデータが入力されます。

EGの場合:

Temp1:5,8 ...から1100000までのaction_objidを含むデータ(action_objidはシーケンスではないため、これは100万データです)。同様に、他の6つの一時テーブルの場合。私はオラクル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 に答える