![](/img/trans.png)
[英]SAP HANA: Is there a way to define schema and table name as input parameters of a procedure?
[英]custom table type in stored procedure sap hana
我是 sap hana 世界的新手。 我正在嘗試使用存儲過程來更新信息。 我想發送帶有字段名稱、字段值和行 ID 的自定義表類型。 我創建了這種類型:
CREATE TYPE t_field AS TABLE (
ID INTEGER,
FLD VARCHAR(100),
VAL VARCHAR(100));
我在這個過程中使用了它:
PROCEDURE "_SYS_BIC"."Match.procedures::updateAnag" (
in tfield tt_field,
out error tt_error
)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
DEFAULT SCHEMA "_SYS_BIC"
AS
BEGIN
declare _id integer;
declare _field varchar(100);
declare _value varchar(100);
select ID, F_NAME, F_VALUE
into _id, _field, _value
from :tfield;
IF(_field = '' OR _value = '') THEN
error = SELECT 400 AS http_status_code,
'empty field' as error_message,
'All fields must be filled' as detail from dummy;
ELSE
IF (_field = 'name') THEN
UPDATE "_SYS_BIC"."TEST_TABLE"
SET NAME = _value
WHERE ID = _id;
END IF;
IF (_field = 'surname') THEN
UPDATE "_SYS_BIC"."TEST_TABLE"
SET SURNAME = _value
WHERE ID = _id;
END IF;
END IF;
END;
但是當我嘗試激活代碼時,eclipse 返回給我這個錯誤:'sap-ui-core.js:159 2016-07-19 17:45:47.751550 出現以下問題:HTTP request failed400,Bad Request,Request contains properties實體“anagType”中不存在的。 ——'
有人可以幫我修復它或向我展示更好的方法嗎?
好吧,從 SQLSCript 代碼的角度來看,我想說的一個問題是,當您使用變量(如 _value 或 _id)時,需要在它們前面加上冒號:
CREATE PROCEDURE "_SYS_BIC"."Match.procedures::updateAnag" (
in tfield tt_field,
out error tt_error
)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
DEFAULT SCHEMA "_SYS_BIC"
AS
BEGIN
declare _id integer;
declare _field varchar(100);
declare _value varchar(100);
select ID, F_NAME, F_VALUE
into _id, _field, _value
from :tfield;
IF(:_field = '' OR _:value = '') THEN
error = SELECT 400 AS http_status_code,
'empty field' as error_message,
'All fields must be filled' as detail from dummy;
ELSE
IF (:_field = 'name') THEN
UPDATE "_SYS_BIC"."TEST_TABLE"
SET NAME = :_value
WHERE ID = :_id;
END IF;
IF (:_field = 'surname') THEN
UPDATE "_SYS_BIC"."TEST_TABLE"
SET SURNAME = :_value
WHERE ID = :_id;
END IF;
END IF;
END;
另一個問題是您沒有在 IF 語句的第二個分支中初始化表變量錯誤。
雖然不太確定,這一切與您的錯誤消息有什么關系。 您可能希望首先自行調用和測試該過程,然后查看與 xsjs 頁面的連接為何無法正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.