[英]Update table from hierarchy function - SAP HANA
一直在为此苦苦挣扎-希望有人可以提供帮助...
我在 SAP HANA Studio 中创建了一个用户定义的标量 function (UDF),它应该根据输入PROFITCENTER
和HIERARCHY_LEVEL
从层次结构中返回“Knudebeskrivelse”(节点描述):
CREATE OR REPLACE FUNCTION GET_KNUDEBESKRIVELSE_ON_REQUESTED_LEVEL
(IN PROFITCENTER NVARCHAR (40)
,IN HIERARCHY_LEVEL_INPUT INT)
returns KNUDEBESKRIVELSE NVARCHAR (40)
AS
BEGIN
DECLARE KNUDEBESKRIVELSE NVARCHAR(40);
SELECT
"Knudebeskrivelse" INTO KNUDEBESKRIVELSE
FROM HIERARCHY_ANCESTORS (
SOURCE HIERARCHY (
SOURCE (
select "Knude-ID" AS node_id, "ID for overordnet" as parent_id, * FROM "FRS_PRO244"."GAAA_FKO"
)
CACHE FORCE
)
START WHERE "Knudenavn" = PROFITCENTER
)
WHERE HIERARCHY_LEVEL = HIERARCHY_LEVEL_INPUT
;
END
;
使用 function,我想更新表AP_MYNDIGHED
MYNDIGHED
从AP_MYNDIGHED
获取值PROFITCENTER
和HIERARCHY_LEVEL
(到目前为止我只是硬编码“2” - 稍后将更改)如下:
UPDATE FRS_PRO244.AP_MYNDIGHED
SET MYNDIGHED = "FRS_PRO244"."GET_KNUDEBESKRIVELSE_ON_REQUESTED_LEVEL"(AP_MYNDIGHED.PROFITCENTER, 2)
function 创建并运行时没有错误消息,但字段MYNDIGHED
未更新 - 或者更确切地说,它正在被清空......
我怀疑问题在于由于 function 中的某些错误导致返回值为 null,但我不确定如何测试和解决此问题。
我已经尝试创建一个类似的表 UDF,它返回请求的值就好了......这里的问题是我不知道如何在 set-statement 中使用表 function 结果。
无论如何,可能是一些基本错误(我对此不是很有经验) - 希望有人能指出我正确的方向。
谢谢!
好吧,我终于让它工作了 - 这个 function 代码可以解决问题:
CREATE OR REPLACE FUNCTION GET_KNUDEBESKRIVELSE_ON_REQUESTED_LEVEL_SCALAR
(IN PROFITCENTER NVARCHAR (40)
,IN HIERARCHY_LEVEL_INPUT INT)
returns KNUDEBESKRIVELSE_OUT NVARCHAR(40)
AS
BEGIN
DECLARE KNUDEBESKRIVELSE NVARCHAR(40);
SELECT KNUDEBESKRIVELSE INTO KNUDEBESKRIVELSE_OUT
FROM HIERARCHY_ANCESTORS (
SOURCE HIERARCHY (
SOURCE (
select "Knude-ID" AS node_id, "ID for overordnet" as parent_id, "Knudebeskrivelse" AS KNUDEBESKRIVELSE, "Knudenavn" as KNUDENAVN FROM "FRS_PRO244"."GAAA_FKO"
)
CACHE FORCE
)
START WHERE KNUDENAVN = PROFITCENTER
)
WHERE HIERARCHY_LEVEL = HIERARCHY_LEVEL_INPUT
;
END;
似乎我可能在代码中引入了一些混淆变量'KNUDEBESKRIVELSE'
命名......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.