点击此处---> 群内免费提供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"')。
如文档所述,这不是 可以将结构化和表类型绑定到实际参数。 因此,使用EXECUTE_PROCEDURE方法是不可能的。 但是,您可以通过为过程定义CALL语句并将NULL值传递给输出参数来使用EXECUTE_QUERY方法。 这导致创建了一个临时表,其中包含可以使用查询结果上的方法SET_PARAM_TABLE访问的结果(请检查文档)。
另一个问题是,为什么要使用ADBC接口而不是创建调用您的AMDP
在AMDP中,您可以直接访问属性视图(前提条件:db用户需要具有所需的select特权)。 在这两种情况下(AMDP,ADBC),您都必须确保HANA系统上的属性视图可用,因为该视图不会随用于装运ABAP编码的ABAP传输一起自动提供。
但是,您应该考虑到,属性视图已经过时了很长时间。 如果您不能使用纯ABAP SQL或仅包含包含属性视图中当前逻辑的AMDP来解决您的要求,则应重新考虑。 这样,您将没有"装运依赖项",因为所有装运都随ABAP运输一起运输。
一周热门 更多>