尝试从服务端调用SAP HANA存储过程时出错

2020-08-19 11:18发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在尝试使用以下代...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试使用以下代码从服务端调用SAP HANA hdbprocedure。

 var con = ConLib.getHDBConnection();
 var uploadStmt = con.loadProcedure(" _ SYS_BIC"," procname");
 var result = uploadStmt(" samplefield1"," samplefield2",{" DATA":[{" id1":" id_1001"," id2":" id_2001"," year_col":" 2018"},{" id1":  " id_1002"," id2":" id_2002"," year_col":" 2019"}]}));

 

该过程将以下参数作为输入。

 PROCEDURE procname(
 在field1 VARCHAR(100)中,
 IN field2 VARCHAR(100)
 IN in_table_data" schema_name"。" hdbdd_file_name.table_type"
 ){}
 

in_table_data在hdbdd_file_name.hdbdd文件中定义如下。

类型table_type {
 id1:字符串(100);
 id2:字符串(100);
 year_col:字符串(4);}
 

当我从服务端调用过程时,出现错误提示。

" processRequest方法$ .hdb.Connection.executeProcedure中发生错误:位置3的参数不是可以处理的类型" 

您能否建议需要在数据库端或服务端进行哪些更改以解决此问题。

谢谢。

1条回答
派大星 ヾ
2020-08-19 11:48

您没有将数组作为第三个参数传输(而是具有数组属性DATA的对象)。 您必须直接传递数组:

 ...
 var result = uploadStmt(" samplefield1"," samplefield2",[{" id1":" id_1001"," id2":" id_2001"," year_col":" 2018"},{" id1":" id_1002","  id2":" id_2002"," year_col":" 2019"}]]);
 ... 

一周热门 更多>