SQLチューニング *[SQL][Oracle][INSERT]
机上の空論だが、こんなんできるらしい。
マルチテーブルインサートとも表現される。
メリット
・プログラムから送るSQL文は1文で済む
・UNION ALLしてるだけなので、テーブル間に関連がなくてもいい
デメリット
・テーブル定義が一つでも変わったら全体が動かない
・一つでもいらないテーブルが出てきたとしても全体の再テストが必要
・再利用性が低い
INSERT ALL
WHEN テーブル判別フラグ= 1 THEN
INTO AAAAA VALUES( 項目1,…,項目100 )
WHEN テーブル判別フラグ= 2 THEN
INTO BBBBB VALUES( 項目101,…,項目200 )
SELECT 項目1
,項目2
,項目3
:
,テーブル判別フラグ
,項目100
,項目102
,項目103
:
FROM (SELECT 列名1 項目1
,列名2 項目2
,列名3 項目3
:
,列名100 項目100
,1 テーブル判別フラグ
FROM テーブルA
UNION ALL
SELECT 列名A 項目101
,列名B 項目102
,列名C 項目103
:
,列名A100 項目200
,1 テーブル判別フラグ
FROM テーブルA)