[英]How to write SQL statements in SAP HANA Scalar User Defined Functions (UDF)?
我在SAP HANA中编写UDF(用户定义函数)。 我想在外面的另一个SQL语句中使用此函数。
例:
我想写一个UDF
func_get_age (in_employee_id)
此函数接受in_employee_id作为输入参数。 在UDF内,它在表上针对特定的in_employee_id执行查找并返回年龄。 因此,在UDF中使用了SQL。 就像是
SELECT AGE FROM EMPLOYEE WHERE EMPLOYEE_ID = in_employee_id
现在,此Age需要作为输出返回,然后由另一个SQL使用。 就像是
SELECT func_get_age(11234) from dummy;
我的问题是
是否可以在SAP HANA中的UDF中编写SQL? 我再次希望UDF返回单个值而不是表。 我不是在寻找表函数。
是的,在当前的HANA版本中完全有可能。
例如:
create or replace function multi (in mult int)
returns multi_count int
as
begin
declare cnt integer;
select count(*) into cnt
from objects;
multi_count := :cnt * :mult;
end;
此函数获取所有可见对象的数量,并将其与输入参数值相乘。 该操作的结果分配给RETURN参数multi_count
。
select multi (3) from dummy;
是的,请确保您可以按照返回员工全名的示例中的示例在HANA数据库上创建用户定义的标量函数
我在下面复制了HANA UDF函数的简化版本
CREATE FUNCTION fnGetFullname (
firstName VARCHAR(40),
middleName VARCHAR(40),
lastName VARCHAR(40)
)
returns fullname VARCHAR(120)
AS
BEGIN
fullname := CONCAT(CONCAT(CONCAT(firstName, ' '), CONCAT(middleName,' ')),lastName);
END
您只需为返回值分配一个值
在这里如何使用该功能
select fnGetFullname('Sith Lord','Darth','Vader') from dummy;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.