情景
在SAP ABAP OPENSQL的分包查询或者SELECT ENDLECT循环查询中,若希望暂停一定的时间再继续查询,我们可能会考虑到使用WAIT UP TO XXX SECONDS这个语法,今天试了下这个写法,会DUMP,原因其实F1就能看到了。
原因
在使用database cursor过程中,不能有commit work和rollback,否则dump DBSQL_INVALID_CURSOR.
Each time the statement WAIT is used, a database commit is triggered (except in updates).
For this reason, WAIT must not be used between Open SQL statements that open or close a database cursor.
对策
对策1
按被查询对象的主键依次查询,和BW增量加载LO数据的逻辑有那么点相似。
对策2
使用函数ENQUE_SLEEP,实际测试了下,可行。
顺便复习下OPENSQL分包
先OPEN CURSOR,然后执行此CURSOR,最后再关闭此CURSOR。
本文作者: GavinDong
版权属于: GavinDong博客
文章链接: https://gavindong.com/9736.html
如果使用过程中遇到问题,可 **点击此处** 交流沟通。
版权所有,转载时必须以链接形式注明作者和原始出处及本声明。