通过?调用SAP HANA过程 字符

2020-09-03 16:21发布

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

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


你好

我想知道是否可以使用输出参数为'?'的类CL_SQL_STATEMENT的execute_procedure方法调用存储过程。 拿桌子吗?

以下是我想做的事的一点提示:

 DATA(va_where)='?'

 数据:lr_dref1 TYPE REF TO数据。
   在va_where中获取引用到lr_dref1。
   lo_stmt-> set_param(
     出口
       data_ref = lr_dref1"对数据对象的引用
 * pos =" 2字节整数(有符号)
 * ind_ref ="对指标变量的引用
       inout = cl_sql_statement => C_PARAM_OUT" IN/OUT参数
 * is_lob ='X'"数据库上是否有LOB列引用?
   )。


 lo_stmt-> execute_procedure(proc_name ='_SYS_BIC。" QM_CUSTOMERS.Procedures :: GET_DATA_INOB"')。

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

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


你好

我想知道是否可以使用输出参数为'?'的类CL_SQL_STATEMENT的execute_procedure方法调用存储过程。 拿桌子吗?

以下是我想做的事的一点提示:

 DATA(va_where)='?'

 数据:lr_dref1 TYPE REF TO数据。
   在va_where中获取引用到lr_dref1。
   lo_stmt-> set_param(
     出口
       data_ref = lr_dref1"对数据对象的引用
 * pos =" 2字节整数(有符号)
 * ind_ref ="对指标变量的引用
       inout = cl_sql_statement => C_PARAM_OUT" IN/OUT参数
 * is_lob ='X'"数据库上是否有LOB列引用?
   )。


 lo_stmt-> execute_procedure(proc_name ='_SYS_BIC。" QM_CUSTOMERS.Procedures :: GET_DATA_INOB"')。
付费偷看设置
发送
2条回答
Baoming ROSE
1楼 · 2020-09-03 16:53.采纳回答

文档所述,这不是 可以将结构化和表类型绑定到实际参数。 因此,使用EXECUTE_PROCEDURE方法是不可能的。 但是,您可以通过为过程定义CALL语句并将NULL值传递给输出参数来使用EXECUTE_QUERY方法。 这导致创建了一个临时表,其中包含可以使用查询结果上的方法SET_PARAM_TABLE访问的结果(请检查文档)

另一个问题是,为什么要使用ADBC接口而不是创建调用您的AMDP

南山jay
2楼-- · 2020-09-03 17:02

在AMDP中,您可以直接访问属性视图(前提条件:db用户需要具有所需的select特权)。 在这两种情况下(AMDP,ADBC),您都必须确保HANA系统上的属性视图可用,因为该视图不会随用于装运ABAP编码的ABAP传输一起自动提供。

但是,您应该考虑到,属性视图已经过时了很长时间。 如果您不能使用纯ABAP SQL或仅包含包含属性视图中当前逻辑的AMDP来解决您的要求,则应重新考虑。 这样,您将没有"装运依赖项",因为所有装运都随ABAP运输一起运输。

一周热门 更多>