如何在 SAP HANA 标量用户定义函数 (UDF) 中编写 SQL 语句?
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 和 return 年龄对 table 执行查找。因此,SQL 进入 UDF 内部。像
SELECT AGE FROM EMPLOYEE WHERE EMPLOYEE_ID = in_employee_id
现在这个 Age 需要 return 作为输出返回,然后由另一个 SQL 使用。像
SELECT func_get_age(11234) from dummy;
我的问题是
是否可以在 SAP HANA 的 UDF 中写入 SQL?我再次希望 UDF 为 return 单个值而不是 Table。我不是在寻找 Table 函数。
是的,这在当前的 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;
是的,当然
您可以按照示例中给出的方式创建 user-defined scalar function on HANA database,其中员工的全名是 returned
下面我复制了一个简化版的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
您只需为 return 值赋值
在这里你可以如何使用这个功能
select fnGetFullname('Sith Lord','Darth','Vader') from dummy;
我正在 SAP HANA 中编写 UDF(用户定义函数)。我想在外面的另一个SQL语句中使用这个函数。
示例:
我想写一个类似
的UDFfunc_get_age (in_employee_id)
这个函数接受in_employee_id作为输入参数。在 UDF 内部,它针对特定的 in_employee_id 和 return 年龄对 table 执行查找。因此,SQL 进入 UDF 内部。像
SELECT AGE FROM EMPLOYEE WHERE EMPLOYEE_ID = in_employee_id
现在这个 Age 需要 return 作为输出返回,然后由另一个 SQL 使用。像
SELECT func_get_age(11234) from dummy;
我的问题是
是否可以在 SAP HANA 的 UDF 中写入 SQL?我再次希望 UDF 为 return 单个值而不是 Table。我不是在寻找 Table 函数。
是的,这在当前的 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;
是的,当然 您可以按照示例中给出的方式创建 user-defined scalar function on HANA database,其中员工的全名是 returned
下面我复制了一个简化版的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
您只需为 return 值赋值
在这里你可以如何使用这个功能
select fnGetFullname('Sith Lord','Darth','Vader') from dummy;