ABAP对内表操作要通过工作区域进行的疑问
Q1:为什么对于内表的操作要在工作区进行。Q2:按照这样的规定,那么像:SELECT*INTOCORRESPONDINGFIELDSOFTABLEITABFROMMARA...
Q1:为什么对于内表的操作要在工作区进行。
Q2:按照这样的规定,那么像:
SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM MARA
WHERE xxxxxxxxx
这样的语句不就是在直接对ITAB这个内表进行了直接的操作吗? 展开
Q2:按照这样的规定,那么像:
SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM MARA
WHERE xxxxxxxxx
这样的语句不就是在直接对ITAB这个内表进行了直接的操作吗? 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
1个回答
展开全部
首先你要理解什么是内表,什么是工作区;
因为在ABAP中常用的SQL是SAP自带的OPEN SQL,它与NATIVE SQL不同,还要多一层解析的过程。因此,在ABAP中使用多表JOIN(>3)的效率远小于将数据存储到内表后,再对内表进行后续的操作。
而内表,实际上就是一个临时存储空间,有效的范围是当前程序;
而工作区,实际上就是一个结构,它与内表的区别就是,内表存放的是多条记录,而工作区是一条;
针对Q1:对于大多数的处理内表是无法批量更新的,因此内表的操作要将数据放在工作区进行,然 后处理完后更新到内表。
针对Q2:你的这个SQL只是将数据存放到内表中,并没有做任何其他的操作。
谢谢~O(∩_∩)O~
因为在ABAP中常用的SQL是SAP自带的OPEN SQL,它与NATIVE SQL不同,还要多一层解析的过程。因此,在ABAP中使用多表JOIN(>3)的效率远小于将数据存储到内表后,再对内表进行后续的操作。
而内表,实际上就是一个临时存储空间,有效的范围是当前程序;
而工作区,实际上就是一个结构,它与内表的区别就是,内表存放的是多条记录,而工作区是一条;
针对Q1:对于大多数的处理内表是无法批量更新的,因此内表的操作要将数据放在工作区进行,然 后处理完后更新到内表。
针对Q2:你的这个SQL只是将数据存放到内表中,并没有做任何其他的操作。
谢谢~O(∩_∩)O~
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询