【问题标题】:TERADATA Stored Procedure return data errorTERADATA 存储过程返回数据错误
【发布时间】:2018-11-19 17:25:14
【问题描述】:

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

  1. 从历史表中删除过去 8 天
  2. 然后我们将最近 8 天的更新数据添加回历史表中
  3. 返回历史表的所有数据

当我添加最后一步(第 3 步)时,出现如下屏幕截图所示的错误。你能帮我理解我应该解决什么问题才能完成这项工作吗?

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 -INTERVAL '8' DAY(FORMAT 'YYYYMMdd') 
                        AND CURRENT_DATE -INTERVAL '1' DAY(FORMAT 'YYYYMMdd');

------------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-------------------

     SELECT * FROM History_Table;

END;

谢谢!

丹尼尔

【问题讨论】:

    标签: stored-procedures teradata


    【解决方案1】:

    Teradata 遵循标准 SQL,您必须使用游标语法(它不是处理数据时应避免的实际游标)来返回结果集。如果没有游标,则只能返回单行 INTO 变量。

    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_Table 按该日期列进行分区。

    【讨论】:

      猜你喜欢
      • 2020-05-09
      • 2014-05-15
      • 2017-03-16
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2019-06-16
      相关资源
      最近更新 更多