Db2
DB2:從游標載入動態查詢
我們需要使用從游標載入來移動多個表。但是源表和目標表中的數字列不一樣。
表結構也可以改變,所以我們需要相同的動態。
該聲明將如下所示。
declare cur1 cursor for select col1,col2, col3 from test1; load from cur1 of cursor insert into test2 (col1,col2, col3);
我需要從使用立即執行的過程中呼叫它,以便我們可以在查詢中附加列。列列表位於變數 V_COL_LIST 中,因此我需要為過程執行的查詢如下所示。
execute immediate ('declare cur1 cursor for select '||V_COL_LIST ||' from test1'); execute immediate ('load from cur1 of cursor insert into test2 ('||V_COL_LIST ||')');
但立即執行不適用於上述查詢。有什麼解決方法嗎?
想通了使用 ADMIN_CMD
set v_sql ='LOAD FROM (SELECT '|| v_colquery || ' FROM ' || srctablename || ') OF CURSOR INSERT INTO ' || destablename || '_LOG ( ' || v_colquery || ')'; call admin_cmd(v_sql);