向 Teradata 存储过程添加可选参数

Add Optional Parameters to Teradata Stored Procedure

有没有办法将可选参数添加到 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 等效产品?我在网上看了看,什么也没找到。

不,SP 中的参数没有默认值,也无法在 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');