実行時に特定のTABLEからすべてのCOLUMN_NAMESを取得し、TABLE内のCOLUMNSの数と名前がわからないことを考慮して、これらのCOLUMN_NAMESを使用して各ROWから値をフェッチします。実行時にすべてのCOLUMN_NAMESを取得し、各ROWから値をフェッチするOracleクエリーw.r.t.各列
TABLE1:
COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4
value11 value12 value13 value14
value21 value22 value23 value24
...
私は次のように各行に対応するInsert文を期待していたSQLクエリの結果:
INSERT INTO TABLE1 VALUES (value11,value12,value13,value14);
INSERT INTO TABLE1 VALUES (value21,value22,value23,value24);
...
私のアプローチこれまでのところ、:
QUERY 1
SELECT 'INSERT INTO TABLE1 VALUES (' ||COLUMN_1 ||',' ||COLUMN_2 ||',' ||COLUMN_3 ||',' ||COLUMN_4 ||');' AS INSERTSCRIPT FROM TABLE1 ORDER BY COLUMN_1;
使用して、このI希望のインサートたstatmentsを得るが、問題は、このようなTABLESの数百を超えるがあるので、私は(各テーブルに手動で列名を指定しないようにしたい」です)」。
だから私はで次しようとしている:
QUERY 2)
COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4
として列を示していますが、問題は、私はこれを使用することはできませんよということです
SELECT LISTAGG(COLUMN_NAME, ', ') WITHIN GROUP (ORDER BY COLUMN_ID) FROM USER_TAB_COLS WHERE TABLE_NAME = 'TABLE1';
をQUERY_1になります
ありがとうございました!