如果说工作区域、变量未清空是ABAP第一坑的话,那么FOR ALL ENTRIES的坑大概能算得上第二大坑了。

FOR ALL ENTRIES有三个需要注意的地方。

1、使用前必须判断内表是否为空

如果内表为空,就会使WHERE条件失效,相当于没有指定任何限制。注意是整个WHERE失效,而不是仅仅FOR ALL ENTRIES的字段。

如下面例子:

会取出MAKT所有的数据,而不仅仅是MAKTX等于半成品的。

下面是ST05跟踪的结果:

2、默认的DISTINCT

FOR ALL ENTRIES是把一个SQL分解成多个SQL去执行,然后把结果汇总去重后返回。这个去重的动作其实就是做一个DISTINCT。

把程序改一下,使得IT_MAT有值:

然后运行跟踪一下SQL:

可以看出FOR ALL ENTRIES就是把内表的数据依次放到SQL里面,因为IT_MAT可能有重复的值,所以在最终返回的时候要去重,也就是有个DISTINCT的动作,所以,

第一:最好把内表IT_MAT去重后再使用,提高效率

第二:SELECT后面的要有唯一键值的区别度,防止DISTINCT导致数据丢失。

3、内表大的时候占用内存会很大

如果IT_MAT很大的话,比如几百万数据,执行这个SQL占用的内存是可观的,有时候会达到内存使用的上限,而且效率很差,所以尽量避免大数据量下使用FOR ALL ENTRIES。

【转】ABAP的坑2相关推荐

  1. 【转】ABAP的坑1

    ABAP第一坑的是:工作区域未清空 先看一段代码: 我期望的结果是 而实际上程序运行出来的结果是 为啥错了呢?就是因为工作区域未清空,加上一句CLEAR,欧了 知识点: 内表(ITAB)和工作区域(W ...

  2. 【转】ABAP的坑5

    对于初写ALV的ABAPer,it_fieldcat参数经常有一些隐藏的小坑,需要多加注意. 目录: 01.字段名大小写的问题 02.导出到Excel或者文本最后一位丢失 03.默认变式导致改了FLD ...

  3. 【转】ABAP的坑3

    上一个坑讲到了FOR ALL ENTRIES,今天来说一说RANGE. 何谓RANGE? RANGE就是在选择屏幕上常用的多选,其本质是一个有固定结构的内表. RANGE有两种定义方式, 1.常用定义 ...

  4. 【转】ABAP的坑4

    本次介绍SORT的一些知识点和容易出错的地方. 正文: 1.SORT中ASCENDING|DESCENDING的位置 如下例: SORT itab_cdpos DESCENDING BY object ...

  5. 在Visual Studio Code里编写ABAP代码

    今天在公司在线安装SAPGUI,一上午的时间都没把安装包下载完,有点怀念07年刚入坑ABAP时那会儿身材苗条的SAPGUI. 最近Visual Studio Code里和ABAP相关的扩展越来越多了, ...

  6. SAP官方发布的ABAP编程规范

    最近有朋友在公众号后台给我留言,"Jerry啊,你最近写的都是一些SAP研究院里面用到的新技术,能不能写点SAP传统的开发技术比如ABAP相关的东西"? 其实Jerry在刚开始写这 ...

  7. abap开发那点事 (二)

    上次说了开发的一些基础,这次就可以介绍一下,开发的基本了,因为我从事basis工作,所以对开发也不是特别熟.写的东西,是因为basis必须要懂点开发,要不你在工作中就会遇到很大的难题,多大的难题呢? ...

  8. vhm在服务器上创建虚拟机,一步步实现ABAP后台导入EXCEL到数据库【1】

    在SAP的应用当中,导入.导出EXCEL文件的情况是一个常见的需求,有时候用户需要将大量数据定期导入到SAP的数据库中.这种情况下,使用导入程序在前台导入可能要花费不少的时间,如果能安排导入程序为后台 ...

  9. ABAP数据库操作02-数据查询

    ABAP数据库操作02-数据查询 在SE11创建一个表zlion_test,字段:学号.姓名.性别.年龄,并在SE16N中添加4条记录 1.单条查询 单条记录查询要用:single 1.1.查询单条单 ...

最新文章

  1. python使用教程pandas-十分钟搞定pandas(入门教程)
  2. mysql退出当前数据库,再次 show databases
  3. D3 dataset - what is usage of key function in data
  4. 用好pypi,提高开发速度
  5. 未能加载文件或程序集 Newtonsoft.Json, Version=4.5.0.0 的报错,解决方法
  6. 移动互联网赌博的大礼包触发
  7. 罪恶都市联机器无法显示服务器,《GTA:罪恶都市》多人联机!你的童年又回来了,梦想成真了!...
  8. DSP入门小白学习日记第二篇
  9. picasa csdn_如何阻止Picasa截取不必要的屏幕截图
  10. 用户体验设计5大目标
  11. 算法工程师书籍推荐——典藏版
  12. python 爬虫框架scrapy优势_Python 爬虫框架Scrapy 简单介绍
  13. python补考卷子_1819级计算机专业补考(python程序设计)_章节测验,期末考试,慕课答案查询公众号...
  14. 后台运行shell命令eog,并用pkill关闭
  15. 【21天习惯养成记~~day17晚】
  16. 七夕了,男朋友说他想学学算法~
  17. 全网营销如何落地?全网营销的途径有哪些?
  18. HTML+CSS+Javascript简易记账本(localStorage)
  19. python使用scrapy爬取图片
  20. exls表格搜索快捷键_Excel快捷键使用大全

热门文章

  1. Cooperative Content Distribution and Traffic Engineering
  2. 变形积木装饰科技发起创始人郭辉:I'm the Business Bible
  3. zip,tar,打包并压缩
  4. arc下内存泄漏的解决小技巧
  5. 增加SYSTE表空间数据文件
  6. oracle 调优3
  7. 用#ifndef、#define、#endif避免头文件的重定义
  8. [Head First设计模式笔记]----命令模式
  9. Spark性能优化:资源调优篇
  10. jsfl 改变舞台宽高