0

Oracle11gに2つのフィールドを持つテーブルt_testがあります。

CITY  NAME
----- --------------
MIAMI JOHN
MIAMI ERNEST
MIAMI ERICK
TAMPA DAN

NAME1つの挿入コマンドを使用してそのクエリに複数の行を挿入し、クエリのパラメータとしての値を渡したいと思います。これは次のようになります。

INSERT INTO T_TEST (CITY, NAME)
SELECT :1,(:2,:3,:4,:5) from dual

ここで、パラメーター1はマイアミであり、パラメーター2、3、4、および5は異なる名前です。

私はいくつかの例を見てきましたが、最良のオプションはピボット解除であると考えているので、テーブルの行として名前を返すサブクエリがありますが、ピボット解除を使用してそれを行う方法がわかりません。

4

1 に答える 1

0

ここでは特別なことは何もありません。カテジアン結合 (つまり、条件なしで結合) だけです。

INSERT INTO T_TEST (CITY,NAME)
SELECT C.city
    ,  N.name
FROM   ( SELECT :1 AS city FROM DUAL ) C
    ,  ( SELECT DECODE( LEVEL, 1, :1
                             , 2, :2
                             , 3, :3
                             , 4, :4
                             , 5, :5 ) AS name
         FROM DUAL
         CONNECT BY LEVEL <= 5 ) N
于 2011-11-14T03:00:35.440 に答える