Db2

DB2:從游標載入動態查詢

  • December 24, 2015

我們需要使用從游標載入來移動多個表。但是源表和目標表中的數字列不一樣。

表結構也可以改變,所以我們需要相同的動態。

該聲明將如下所示。

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);   

引用自:https://dba.stackexchange.com/questions/124506