タグ

sqlと大量に関するMikatsukiのブックマーク (3)

  • oracle で、複数レコードを同時にinsertするSQL

    insert all into table_a(column_a,column_b,column_c) values(value_1a,value_1b,value_1c) into table_a(column_a,column_b,column_c) values(value_2a,value_2b,value_2c) select * from dual もしくは、カラム指定を省略して insert all into table_a values(value_1a,value_1b,value_1c) into table_a values(value_2a,value_2b,value_2c) select * from dual

  • Oracle で大量の insert を高速に処理する方法の検討

    久々に Oracle ネタです。以前 セッション管理に向いているデータベースは MySQL ? Oracle ? というエントリを書いたのですが、それとは別に insert の処理をどうしても高速化する必要に迫られました。今回高速化すべき要件として同一テーブルに大量のデータを一気に登録する作業です。いわゆる管理系業務で良くある csv のインポート的な機能に相当します。 さてそのような要件の場合、insert の方法は大きく分けて以下の方法が考えられます。それぞれどんなものかを知りたい方はエントリー最後の参考を読むと理解できると思います。 アプリ側から csv のデータを読み込んで for 文で件数分ループして insert する マルチテーブルインサート機能を用いて、1つの insert で複数データを一括登録する バルクインサート処理を行う PL/SQL を定義して一括登録する SQ

  • 小技ORACLE | 一回のINSERT文で複数行を一度に挿入する方法(INSERT ALL INTO文)

    INSERT ALL INTO 文で複数行のデータを一度に挿入する方法です。 複数行のデータ挿入は、INSERT文を何回も発行する事でも可能です。 数行であれば毎回SQLを発行しても良いかもしれません、ですが何十行、何百行のデータを挿入する時に、毎回SQLを発行するのはあまり現実的ではありません。 そんな時は、INSERT ALL INTO ~VALUES ~SELECT * FROM DUAL という形で記述すると1度のSQL発行でデータを挿入する事が出来るようになります。 INSERT ALL INTO テーブル名 (カラム名1,カラム名2,…) VALUES ('値1','値2',…) INTO テーブル名 (カラム名1,カラム名2,…) VALUES ('値1','値2',…) SELECT * FROM DUAL INTO~VALUESの記述は通常のINSERT文と同じ書き方にな

    Mikatsuki
    Mikatsuki 2017/01/03
    ALLを使えばぶっこめるのかな
  • 1