首页 > 解决方案 > 如何在 SAP HANA Scalar User Defined Functions (UDF) 中编写 SQL 语句?

问题描述

我正在 SAP HANA 中编写 UDF(用户定义函数)。我想在外面的另一个 SQL 语句中使用这个函数。

例子:

我想写一个像

func_get_age (in_employee_id)

该函数将 in_employee_id 作为输入参数。在 UDF 内部,它在表上执行特定 in_employee_id 的查找并返回年龄。因此,一条 SQL 进入了 UDF。就像是

SELECT AGE FROM EMPLOYEE WHERE EMPLOYEE_ID = in_employee_id

现在这个 Age 需要作为输出返回,然后由另一个 SQL 使用。就像是

SELECT func_get_age(11234) from dummy;

我的问题是

是否可以在 SAP HANA 的 UDF 中编写 SQL?我再次希望 UDF 返回单个值而不是表。我不是在寻找表函数。

标签: sqlsaphana

解决方案


是的,这在当前的 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;

推荐阅读