1
這裏我試圖在DB2中運行一個動態查詢,它返回變量中的行數。DB2動態查詢執行返回行計數
任何人都可以幫助我如何將動態查詢的結果存儲到一個變量,以便我可以進一步使用它?下面是代碼段: -
CREATE PROCEDURE SP_REC_COUNT ()
LANGUAGE SQL
NOT DETERMINISTIC
EXTERNAL ACTION
MODIFIES SQL DATA
CALLED ON NULL INPUT
INHERIT SPECIAL REGISTERS
BEGIN
DECLARE SQL_STR VARCHAR(5000);
DECLARE V_TabSchema VARCHAR(50);
DECLARE V_TabName VARCHAR(100);
DECLARE CNT INTEGER DEFAULT 0;
DECLARE CountCur CURSOR FOR select TabSchema,TabName from SysCat.Tables where TabSchema='NGCORE' or TabSchema='NGCOREAU';
OPEN CountCur;
CountCur_Loop1:LOOP
FETCH CountCur INTO V_TabSchema,V_TabName;
IF SQLCODE = 0
THEN
SET SQL_STR ='select count(*) into CNT from '|| V_TabSchema||'.'||V_TabName;
PREPARE SQ FROM SQL_STR;
execute SQ;
SET SQL_STR ='INSERT INTO NGCORE_TMP.PHYISICAL_BACKOUT_REC_CNT(SCHEMA_NM,TABLE_NM,BEFORE_CNT)VALUES('''||V_TabSchema||''','''||V_TabName||''','||CNT||')';
PREPARE SQL FROM SQL_STR;
EXECUTE SQL;
ELSE
CLOSE CountCur;
LEAVE CountCur_Loop1;
END If;
END LOOP CountCur_Loop1;
END;
獲得以下錯誤: - ERROR [42703] [IBM] [DB2/AIX64] SQL0206N 「CNT」 不是在其被使用的上下文中有效。 SQLSTATE = 42703
乾杯得到了解決方案...... Thnx Preet .. –
優秀@Pravin - 請編輯我的答案或添加您自己的解決方案,以備將來參考 - 謝謝。 –