Stored procedures Teradata:存储过程:参数列名
我正在寻找有关teradata中存储过程的帮助。我想更新整个表,为此我尝试使用for循环游标。问题在于,我的更新是通过向SP传递参数的列名定义的 我已经看到可以使用动态sql来实现这一点,但是我还没有找到关于for循环游标和动态sql的任何信息。是否可以使用FOR循环游标? 我曾尝试使用动态sql只执行select和CALCULATE,它工作得很好,但问题是从select上的光标更新表。在这种情况下,如何从我的游标更新表 我让你展示我的代码 循环光标:Stored procedures Teradata:存储过程:参数列名,stored-procedures,cursor,teradata,Stored Procedures,Cursor,Teradata,我正在寻找有关teradata中存储过程的帮助。我想更新整个表,为此我尝试使用for循环游标。问题在于,我的更新是通过向SP传递参数的列名定义的 我已经看到可以使用动态sql来实现这一点,但是我还没有找到关于for循环游标和动态sql的任何信息。是否可以使用FOR循环游标? 我曾尝试使用动态sql只执行select和CALCULATE,它工作得很好,但问题是从select上的光标更新表。在这种情况下,如何从我的游标更新表 我让你展示我的代码 循环光标: REPLACE PROCEDURE [da
REPLACE PROCEDURE [database].calDELAI
(
IN dateDebut VARCHAR(30),
IN dateFin VARCHAR(30),
IN delay VARCHAR(30)
)
BEGIN
DECLARE DATE_DEBUT_COLONNE VARCHAR(64);
DECLARE DATE_FIN_COLONNE VARCHAR(64);
SET DATE_DEBUT_COLONNE=dateDebut;
SET DATE_FIN_COLONNE=dateFin;
FOR for_loop_update AS cur_select_set CURSOR FOR
SELECT
TMP.DATE_FIN_COLONNE-TMP.DATE_DEBUT_COLONNE
FROM [database].ORD_T_DETL_ORDR_DELAI AS TMP
/* the select is more complicated but here is the spirit of it.*/
DO
IF (delay='DELAI1') THEN SET DELAI1=NB_JR_OUVRABLE;
END IF;
END FOR ;
END ;
teradata给出的错误有:
SPL1027:E, Missing/Invalid SQL statement'E(3810):Column/Parameter '[database].TMP.DATE_FIN_COLONNE' does not exist.'.
SPL2001:E, Undefined symbol 'DELAI1'.
SPL2001:E, Undefined symbol 'NB_JR_OUVRABLE'.
提前感谢您的回复和帮助。call语句应包含所有输入参数,请确保正确指定了所有输入参数。请提供您的通话记录