sql >> データベース >  >> RDS >> Oracle

SQLDeveloperを使用したOracle一括挿入

    SQL * Loaderは、大量のデータをOracleに一括ロードするための私のお気に入りの方法です。最大速度にはダイレクトパス挿入オプションを使用しますが、ダイレクトパス負荷の影響を理解します(たとえば、すべてのデータは最高水準点を超えて挿入されます。これは、テーブルを切り捨てる場合は問題ありません)。不良行に対する許容度もあるため、データに「いくつかの」間違いがある場合でも機能します。

    SQL * Loaderは、インデックスを一時停止し、最後にすべてを構築できるため、一括挿入が非常に高速になります。

    SQL * Loader呼び出しの例:

    $SQLDIR/sqlldr /@MyDatabase direct=false silent=feedback \
        control=mydata.ctl log=/apps/logs/mydata.log bad=/apps/logs/mydata.bad \
        rows=200000
    

    そして、mydata.ctlは次のようになります:

    LOAD DATA
    INFILE '/apps/load_files/mytable.dat'
    INTO TABLE my_schema.my_able
    FIELDS TERMINATED BY "|"
     (ORDER_ID,
      ORDER_DATE,
      PART_NUMBER,
      QUANTITY)
    

    または...データベース間で1つのテーブルの内容全体を別のテーブルにコピーするだけの場合、DBAがDBlink(30秒のプロセス)を設定すると、DBにREDOスペースが設定されていることを前提としてこれを行うことができます。これを達成します。

    truncate table my_schema.my_table;
    
    insert into my_schema.my_table
    select * from [email protected]_remote_db;
    

    /* +append */の使用 ヒントは引き続きダイレクトパス挿入を利用できます。




    1. テーブルでの自己結合と再帰的選択

    2. SQL:日時を指定して各日の最後のレコードを選択します

    3. OracleSQLDeveloperのJDKインストールのフルパス名

    4. SELECTクエリの結果をPHPで事前にフォーマットされたテキストとして出力しますか?