2017-12-07 13 views
0

私はOracleデータベースを使い慣れていません。私は非常に単純なバイリンガル辞書(英語とフランス語の2つのテーブル)を作っています。大規模なデータセットをOracle SQLデータベースにインポートする最も良い方法は?

辞書には、しばしば何千もの単語が含まれています。私の質問は、何千もの[INSERT INTO ... VALUES]コマンドを書くのではなく、インポートフォームを作るなど、プロセスを何とか自動化する良い方法があるのでしょうか?私の学校が提供する本はINSERTコマンドについてのみ言及しているので。

答えて

0

スプレッドシートとINSERT ALLコマンドを組み合わせて使用​​すると、データを挿入するSQL INSERTコマンドをすばやく生成できます。

データをスプレッドシート形式で使用している場合は、数式を使用して各行に対してINSERT文を作成できます。

ただし、INSERT(単一行)構文の代わりにINSERT ALL構文を使用できます。

  1. このようになります。式を使用してスプレッドシートに列を追加します:"INTO table (col1, col2, col3) VALUES ('val1', 'val2', 'val3')"これを行うには

    。この式に値を追加するには、連結を使用する必要があります。

だからあなたの式は、(A、B、およびCの列と仮定して)次のようになります。

= "テーブルINTO(COL1、COL2、COL3)VALUES( '" & A2 & "'を、 ' "& B2 &"'、「」& C2 & "')"

  1. コピー各行に式。
  2. これらの式をすべてコピーして、IDE内のクエリウィンドウに貼り付けます。
  3. あなたのコマンドは次のようになり、あなたのコマンドの終了

で言葉SELECT * FROM dual;を追加するには、コマンドの開始

  • で言葉INSERT ALLを追加します。

    INSERT ALL 
    INTO table (col1, col2, col3) VALUES ('val1', 'val2', 'val3') 
    INTO table (col1, col2, col3) VALUES ('val1a', 'val2a', 'val3a') 
    INTO table (col1, col2, col3) VALUES ('val1b', 'val2b', 'val3b') 
    SELECT * FROM dual; 
    

    これが挿入されますすべてのレコードは単一のステートメント内にあり、数百または数千のINSERTステートメントよりもはるかに高速です。

    また、Data Pump ImportやExportなどのツールを使用することもできますが、私はその経験が限られているため、おそらく別のユーザーがそのことを詳しく説明できます。

  • +0

    ありがとうございます。やってみます! –

    +0

    問題ありません。それが動作する場合は、それを受け入れられた答えとしてマークすることができます> – bbrumm

    0

    ファイルにデータがある場合は、UTL_FILEパッケージを使用して、データの読取り、解析、ロードを行うことができます。 Oracle ULT_FILE package

    Oracleの外部表機能も使用できます。ここをクリック Oracle External tables

    0

    OracleのSql Loader製品は、大量のデータをすばやく読み込むのに最適です。

    関連する問題