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

SQLで大量のデータを効率的に挿入

    Oracle外部テーブルを使用します。

    例も参照してください。

    • 外部テーブルに関するOraFaq
    • トムが外部テーブルについてどう思うか
    • 外部テーブルに関するRenéNyffeneggerのメモ

    始めるための簡単な例

    サーバーディレクトリにあるファイルが必要です(ディレクトリオブジェクトに慣れてください):

    SQL> select directory_path from all_directories where directory_name = 'JTEST';
    
    DIRECTORY_PATH
    --------------------------------------------------------------------------------
    c:\data\jtest
    
    SQL> !cat ~/.gvfs/jtest\ on\ 192.168.xxx.xxx/exttable-1.csv
    1,a
    3,bsdf
    4,sdkfj
    5,something
    129,else
    

    外部テーブルを作成します:

    create table so13t (
      id number(4),
      data varchar2(20)
    )
    organization external (
      type oracle_loader
      default directory jtest /* jtest is an existing directory object */
      access parameters (
        records delimited by newline
        fields terminated by ','
        missing field values are null
      )
      location ('exttable-1.csv') /* the file located in jtest directory */
    )
    reject limit unlimited;
    

    これで、SQLのすべての機能を使用できます データにアクセスするには:

    SQL> select * from so13t order by data;
    
            ID DATA
    ---------- ------------------------------------------------------------
             1 a
             3 bsdf
           129 else
             4 sdkfj
             5 something
    


    1. postgresqlの文字列リテラルとエスケープ文字

    2. mysql全文検索の失敗

    3. Oracle(Old?)Joins-変換用のツール/スクリプト?

    4. SQLで列と行を転置する簡単な方法は?