CREATE OR REPLACE PROCEDURE TEST(
IN I_ETL_CODE VARCHAR(100),
IN V_SQL_INFO VARCHAR(5000) )
BEGIN
DECLARE V_COUNT DECIMAL(10) ;
DECLARE V_PLA_DATE INT DEFAULT 0; --游标是否有值
DECLARE V_NAME VARCHAR(20);
SELECT COUNT(1) INTO V_COUNT FROM TABLE_NAME1 ;
BEGIN
DECLARE CUR_CUR CURSOR WITH HOLD FOR
SELECT COLUNM1 FROM TABLE_NAME;
SET V_PLA_DATE = 0;
OPEN CUR_CUR;
FETCH CUR_CUR INTO V_NAME;
WHILE(V_PLA_DATE < V_COUNT) DO
...
FOR J AS CUR_CUR2 CURSOR WITH HOLD
FOR SELECT COLUMN2 FROM TABLE_NAME2
DO
...
END FOR;
...
SET V_PLA_DATE = V_PLA_DATE+ 1;
FETCH CUR_CUR INTO V_NAME;
END WHILE;
END CLOSE;
END;
END;
IN I_ETL_CODE VARCHAR(100),
IN V_SQL_INFO VARCHAR(5000) )
BEGIN
DECLARE V_COUNT DECIMAL(10) ;
DECLARE V_PLA_DATE INT DEFAULT 0; --游标是否有值
DECLARE V_NAME VARCHAR(20);
SELECT COUNT(1) INTO V_COUNT FROM TABLE_NAME1 ;
BEGIN
DECLARE CUR_CUR CURSOR WITH HOLD FOR
SELECT COLUNM1 FROM TABLE_NAME;
SET V_PLA_DATE = 0;
OPEN CUR_CUR;
FETCH CUR_CUR INTO V_NAME;
WHILE(V_PLA_DATE < V_COUNT) DO
...
FOR J AS CUR_CUR2 CURSOR WITH HOLD
FOR SELECT COLUMN2 FROM TABLE_NAME2
DO
...
END FOR;
...
SET V_PLA_DATE = V_PLA_DATE+ 1;
FETCH CUR_CUR INTO V_NAME;
END WHILE;
END CLOSE;
END;
END;