Stored procedures 通过Teradata存储过程动态插入
我试图运行Insert语句,使用Teradata存储过程将数据加载到表中。这里我尝试输入表名,Databasename作为参数。我的存储过程编译后运行良好。但它并没有向表中插入任何数据。有人能帮我做这个吗。下面是我正在使用的查询Stored procedures 通过Teradata存储过程动态插入,stored-procedures,dynamic,insert,teradata,procedure,Stored Procedures,Dynamic,Insert,Teradata,Procedure,我试图运行Insert语句,使用Teradata存储过程将数据加载到表中。这里我尝试输入表名,Databasename作为参数。我的存储过程编译后运行良好。但它并没有向表中插入任何数据。有人能帮我做这个吗。下面是我正在使用的查询 REPLACE PROCEDURE DB.TEST_SP ( IN SRC_DB_NM VARCHAR(30) , IN SRC_TBL_NM VARCHAR(30) , OUT MESSAGE VARCHAR(200) ) DYNAMIC RESULT
REPLACE PROCEDURE DB.TEST_SP
(
IN SRC_DB_NM VARCHAR(30)
, IN SRC_TBL_NM VARCHAR(30)
, OUT MESSAGE VARCHAR(200)
)
DYNAMIC RESULT SETS 1
BEGIN
DECLARE QUERY1 VARCHAR(200);
DECLARE RESULT1 VARCHAR(200);
DECLARE REC_COUNT INTEGER DEFAULT 0;
DECLARE STATUS CHAR(10) DEFAULT '00000';
DECLARE C1 CURSOR FOR S1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION,SQLWARNING
BEGIN
SET STATUS = SQLCODE;
IF(TRIM(STATUS)) = '3807' THEN
SET MESSAGE = 'PASSED TABLE '||SRC_DB_NM||'.'||SRC_TBL_NM||' DOES NOT EXIST';
ELSE
SET MESSAGE = 'LOADED';
END IF;
END;
BEGIN
SET QUERY1 ='INSERT INTO TABLE1 SELECT ColX , count(*) from DB.table2 where Col in ( SELECT Col1 FROM ' || SRC_DB_NM || '.' || SRC_TBL_NM || ' where ColY = 999 ) group by 1;' ;
EXECUTE IMMEDIATE QUERY1;
PREPARE S1 FROM QUERY1;
OPEN C1 USING SRC_DB_NM,SRC_TBL_NM;
FETCH C1 INTO RESULT1;
SET MESSAGE = RESULT1;
END;
END;
为什么尝试准备/打开光标,查询1不是选择?我删除了准备和打开光标。。。还是同一个问题。请给我正确的代码以满足我的要求。请参阅