Stored procedures Teradata:存储过程:参数列名

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

我正在寻找有关teradata中存储过程的帮助。我想更新整个表,为此我尝试使用for循环游标。问题在于,我的更新是通过向SP传递参数的列名定义的

我已经看到可以使用动态sql来实现这一点,但是我还没有找到关于for循环游标和动态sql的任何信息。是否可以使用FOR循环游标? 我曾尝试使用动态sql只执行select和CALCULATE,它工作得很好,但问题是从select上的光标更新表。在这种情况下,如何从我的游标更新表

我让你展示我的代码

循环光标:

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语句应包含所有输入参数,请确保正确指定了所有输入参数。请提供您的通话记录