将可选参数添加到Teradata存储过程

时间:2015-01-13 16:28:28

标签: sql teradata

有没有办法将可选参数添加到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?我在网上看了一下,一无所获。

1 个答案:

答案 0 :(得分:3)

不,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');