Use For all entries in abap sql need attention
1.SELECT CARRID
CONNID
FLDATE
PRICE
FROM SFLIGHT
INTO TABLE GT_tab
FOR ALL ENTRIES IN GT_SFLIGHT
WHERE CARRID = GT_SFLIGHT-CARRID
AND CONNID = GT_SFLIGHT-CONNID.
在 WHERE 条件中,GT_SFLIGHT-CARRID和GT_SFLIGHT-CONNID这些列将用作占位符。该 SELECT 语句的结果集是 SELECT 语句的所有结果集的联合,这些结果集是用内部表 GT_SFLIGHT 中的相应值在每一行上替换占位符的结果。
2.使用该语句,对于最后得出的结果集系统会自动删除重复行,也就是distinct的问题。因此如果你要保留重复行记录时,记得在SELECT语句中添加足够键值项目,以保证结果集中所需重复项目不会被删除。
3.FOR ALL ENTRIES IN后面使用的内表itab如果为空,系统将视为无条件选取,将当前CLIENT下所有记录选出。因此为避免无意义的全件检索,在使用该语句前一定要判断内部表itab是否为空,为空时不执行包含该语句的数据库检索处理。
4.由于itab-f实际上是作为占位符被替换,所以内部表itab中不要包含HEADER行,以免造成混淆,检索出错。
5.内部表itab中作为条件替换用项目的类型和长度,一定要和检索数据库中对应的项目相同,否则编译不能通过。
6.对于内部表itab中作为条件替换用项目,不能使用LIKE,BETWEEN,IN比较操作符。因为这些比较操作符都是不确定比较操作符(将选择条件设定在一个范围内),而FOR ALL ENTRIES IN语句的作用相当于将选择条件块全部并列开来,用OR连接,如果每个OR分支中又是不确定的范围,那么系统性能将大大降低,因此R/3系统在使用该语句时禁止使用不确定比较操作符。
7.使用该语句时,ORDER BY语句和HAVING语句将不能使用。
8.使用该语句时,除COUNT( * )以外的所有合计函数(MAX,MIN,AVG,SUM)都不能使用。
9.使用时,最好先按照选择条件字段排序,这样会改善performance.
10.使用FOR ALLl ENTRIES存在的风险
SELECT语句中使用FOR ALL ENTRIES时,SAP系统在将OPEN SQL转换成NATIVE SQL时将进行如下形式的转换:
SELECT CARRID
CONNID
PRICE
FROM SFLIGHT
INTO TABLE IT_PRICE
FOR ALL ENTRIES IN IT_SFLIGHT
WHERE CARRID = IT_SFLIGHT-CARRID
AND CONNID = IT_SFLIGHT-CONNID'.
To:
SELECT DISTINCT CARRID
CONNID
PRICE
FROM SFLIGHT
INTO TABLE IT_PRICE
WHERE ( CARRID = 'LH' AND
CONNID = '2415' ) OR
( CARRID = 'SQ' AND
CONNID = '0026' ) OR
( CARRID = 'LH' AND
CONNID = '0400' ) .
也就是会将for all entries内表中的记录展开成or语句连接成 condition语句,这样当内表记录非常大时,该select语句亦非常的庞大。当这些选择条件达到一定的数量时就会出现 "DBIF_RSQL_INVALID_RSQL” 错误,这是由于后台数据库对于选择条件的数量是有一定的限制的,达到这个限制时就会出现如上运行时错误。不同的后台数据库这个限制数量也是不同的。
IN range table亦同。
解决方案:可以根据错误“DBIF_RSQL_INVALID_RSQL” 去SAP官网查找notes。
分享到:
相关推荐
ABAP for all entries使用中注意的问题
这个东西是从别人的成果,我只是把它从网页上面复制到word里面了。不过根据本人实际测试for all entries 能不用就尽量不要用,如果是key field的时候可以考虑一下
用FOR ALL ENTRIES IN 语句搜索 与用 IN语句搜索数据库效率对比
WEB DYNPRO ABAP: DEVELOPMENT IN DETAIL .............................................................. 1 1 BASICS...........................................................................................
ABAP中SQL语法详细介绍,包括基础语法和各种聚合函数,如MAX,MIN,AVG,COUNT,SUM,DIV,MOD,CEIL,FLOOR,DIVSION,ROUND,FOR ALL ENTRIES IN.除了各种聚合函数还有字段拆分,连接,子语句查询,字段类型转换,分情况赋值...
ABAP-FOR ALL ENTRIES IN 注意点 ABAP-根据T-CODE找BADI ABAP-根据T-CODE找BAPI ABAP-UPLOAD文件时常用的数据转换 关于using和changing 程序之间的调用 报表中所用到的事件以及作用 SAP-ABAP SELECT-SCREEN 的几...
13. Fix duplicated entries in Auto-Completion pop-up window. 14. Fix Python Function List not showing functions in some circumstance. 15. Enhance Folder as Workspace performance while adding/removing ...
13. Fix duplicated entries in Auto-Completion pop-up window. 14. Fix Python Function List not showing functions in some circumstance. 15. Enhance Folder as Workspace performance while adding/removing ...
sap press doc 解压密码:abap_developer
Praise for the Third Edition of Spring in Action Preface Acknowledgments About this Book 1. Core Spring Chapter 1. Springing into action 1.1. Simplifying Java development 1.1.1. Unleashing the power ...
13. Fix duplicated entries in Auto-Completion pop-up window. 14. Fix Python Function List not showing functions in some circumstance. 15. Enhance Folder as Workspace performance while adding/removing ...
python库。 资源全名:logentries-envs-0.0.5.tar.gz
If all columns needed for the query are in the index, SQL Server never needs to access the data pages. If even one column in the query is not part of the index, the data rows must be accessed. The ...
The book will be of great interest and use to students and practitioners who need an introduction to this area, and who seek a practical yet sound guide to life insurance accounting and product ...
python库。 资源全名:buildbot_status_logentries-0.0.2.tar.gz
* obviating the need to copy code and constant pool entries into newly * allocated storage. Maintaining local pointers to items in the shared area * is valid and encouraged. * * All memory-mapped...
1.1 Use the Latest OS Release .............................................................................................................. 13 1.2 Apply Latest OS Patches ...............................
INTERNAL TABLES: NUMBER OF ENTRIES 21 INTERNAL TABLES: EXPLICIT WORK AREAS 21 INTERNAL TABLES: SORTING 23 INTERNAL TABLES: DELETING RECORDS 23 LOGIC: NESTED IFS 23 LOGIC: CASE VS. IF 23 LOGIC: MOVE-...
are now able to process not only file system resources but also zip entries, tar entries, paths, ... Resource collections group resources, and can be further combined with operators such as union and...
Use JavaScript to validate form entries and interact with your users. Understand how to respond to user events. Create animations that bring your web site to life. Start programming using the DOM and...