向 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');
有没有办法将可选参数添加到 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');