【问题标题】:Add Optional Parameters to Teradata Stored Procedure向 Teradata 存储过程添加可选参数
【发布时间】:2015-01-14 00:58:45
【问题描述】:

有没有办法向 Teradata 中的存储过程添加可选参数?

我知道在 Oracle 中它是:

create or replace procedure myProcedure (param1 in varchar2 default null, param2 in number default null)

在 SQLServer 中是:

CREATE PROCEDURE MyProcName 
@Parameter1 INT = 1,
@Parameter2 VARCHAR (100) = 'StringValue',
@Parameter3 VARCHAR (100) = NULL

是否有 Teradata 等价物?我在网上看了看,一无所获。

【问题讨论】:

    标签: sql teradata


    【解决方案1】:

    不,SP 中的参数没有 DEFAULT,也无法在 Teradata 的 CALL 语句中省略参数(归咎于标准 SQL)。

    只有宏两者都有,因此可能的解决方法是将 SP CALL 包装在宏中:

    REPLACE MACRO myMacro (param1 INT DEFAULT 1
                          ,param2 VARCHAR(100) DEFAULT ''
                          ,param3 VARCHAR(100)
                          ) AS
    (CALL MyProcName(:param1, :param2, :param3););
    
    EXEC myMacro(param2 = 'bla');
    

    【讨论】:

      猜你喜欢
      • 2015-11-20
      • 1970-01-01
      • 2015-07-16
      • 2015-02-18
      • 2019-03-17
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 2020-06-04
      相关资源
      最近更新 更多