【问题标题】:Creating store procedure at teradata在 teradata 中创建存储过程
【发布时间】:2020-09-25 14:48:18
【问题描述】:

在 teradata 16 创建存储过程时出现 sql 错误,请问这个查询有什么问题?

替换过程 tutorial_db.banks(out test Varchar(20)) 开始 从 tutorial_db.banks 中选择名称 结尾;

【问题讨论】:

    标签: stored-procedures teradata


    【解决方案1】:

    Teradata 的 SP 基于标准 SQL,要返回结果集,您必须定义一个游标

    REPLACE PROCEDURE tutorial_db.banks(OUT test VARCHAR(20)) 
    DYNAMIC RESULT SETS 1 -- add 1 for each result set to be returned
    BEGIN  
       -- dummy cursor declaration
       DECLARE cur2 CURSOR WITH RETURN ONLY FOR      
       SELECT NAME FROM tutorial_db.banks;
    
       -- don't close within the SP
       OPEN cur2;
    END; 
    

    游标通常很糟糕,但是这个 WITH RETURN ONLY 游标不会在 SP 中逐行处理,它只是一个答案集。

    【讨论】:

    • 感谢@dnoeth 的回复.. 我做了这个并创建了过程但出现了错误 Named list is not supported for a procedure.?
    • 您必须使用 OUT 变量的参数名称来调用它,例如call tutorial_db.banks(test)
    猜你喜欢
    • 2016-12-11
    • 2021-02-23
    • 2020-06-04
    • 2020-02-23
    • 2018-08-29
    • 2018-09-05
    • 2012-07-26
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多