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