Stored procedures TERADATA存储过程返回数据错误

Stored procedures TERADATA存储过程返回数据错误,stored-procedures,teradata,Stored Procedures,Teradata,我创建了一个执行以下步骤的过程: 删除历史表格的最后8天 然后,我们将过去8天的更新数据添加回历史表 返回历史表的所有数据 当我添加最后一步(第3步)时,我得到一个错误,如下面的屏幕截图所示。你能帮我弄明白我该怎么做才能让它工作吗 谢谢 DanielTeradata遵循标准SQL,必须使用游标语法(处理数据时应避免使用实际游标)返回结果集。没有游标,您只能将单行返回到变量中 REPLACE PROCEDURE SP_New_Procedure () DYNAMIC RESULT SETS 1

我创建了一个执行以下步骤的过程:

  • 删除历史表格的最后8天
  • 然后,我们将过去8天的更新数据添加回历史表
  • 返回历史表的所有数据
  • 当我添加最后一步(第3步)时,我得到一个错误,如下面的屏幕截图所示。你能帮我弄明白我该怎么做才能让它工作吗

    谢谢


    Daniel

    Teradata遵循标准SQL,必须使用游标语法(处理数据时应避免使用实际游标)返回结果集。没有游标,您只能将单行返回到变量中

    REPLACE PROCEDURE SP_New_Procedure ()
    DYNAMIC RESULT SETS 1 
    SQL SECURITY OWNER
    
    BEGIN 
    ------------Deleting last 8 days of data -------------------------------
    
       DELETE FROM History_Table
            WHERE Date BETWEEN CURRENT_DATE - 1 
                           AND CURRENT_DATE - 8
    
    ------------Inserting updated last 8 days of data------------------------
    
       INSERT INTO History_Table
       SELECT
          FinalTable.*
       FROM
          Data_Query AS FinalTable;
    
    
     ------------Return All values from updated History_Table-------------------
    
       BEGIN
          DECLARE cur CURSOR WITH RETURN ONLY FOR
          SELECT * FROM History_Table;
    
          OPEN cur; -- don't close it, otherwise there's no result
       END;
    
    END;
    
    希望
    History\u表
    由该日期列进行分区

    REPLACE PROCEDURE SP_New_Procedure ()
    DYNAMIC RESULT SETS 1 
    SQL SECURITY OWNER
    
    BEGIN 
    ------------Deleting last 8 days of data -------------------------------
    
       DELETE FROM History_Table
            WHERE Date BETWEEN CURRENT_DATE - 1 
                           AND CURRENT_DATE - 8
    
    ------------Inserting updated last 8 days of data------------------------
    
       INSERT INTO History_Table
       SELECT
          FinalTable.*
       FROM
          Data_Query AS FinalTable;
    
    
     ------------Return All values from updated History_Table-------------------
    
       BEGIN
          DECLARE cur CURSOR WITH RETURN ONLY FOR
          SELECT * FROM History_Table;
    
          OPEN cur; -- don't close it, otherwise there's no result
       END;
    
    END;