SAP abap SELECT *
2010-10-05 08:41
218 查看
尽量不要使用Select *。
程序的可读性差就不多说了。
在写程序的过程中,我们通常会用到一张表中的很多字段,于是图方便在定义结构体的时候就直接的
DATA: BEGIN OF GT_ITAB OCCURS 0.
INCLUDE ***
***
***
END OF GT_ITAB.
在数据选择的时候就为了方便而是用 SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB.在代码编写的时候使用这样的方式是一种很不好的习惯,一不小心会产生很难排查的错误。 尤其是在 from 语句中试用的还是 tab_a inner join tab_b inner join tab_c 这样的多个表进行连接的时候。
我们知道 SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB,他们是根据字段的名进行一一的匹配的,我们也知道在SAP的表里面通常会有很多同名的字段,比如关联字段,保留字段等。在这个时候,内标中的字段会和哪儿源字段进行匹配呢?(关联字段倒还无所谓,因为多列是一样的值)
虽然在后期的应用中,很可能不回用到哪些保留字段。但在我们进行一些表级别的操作的时候,会产生一些困难,比如表的SORT,DELETE ADJACENT DUPLICATES FROM 的时候会对我们的数据处理带来一定的影响。
那么,SELECT * INTO CORRESPONDING FIELDS OF TABLE 的时候,多个重名列的匹配有什么规则的时候,到底怎么匹配的呢? 答案就是,匹配最后一个同名列。
所以,如果你非要使用SELECT * ,那么,请你在表的关联的时候,把目标表放在关联的最后。
相关文章推荐
- [转帖]ABAP实践学习--ABAP中将SAP数据按格式保存到EXCEL(OLE)
- ABAP - 3D Graphs with SAP
- SAP abap 需找出口(BADI)的几种方法
- SAP-ABAP-BAPI 调试 SHP_DELIVERY_CREATE_FROM_STO 的 bug
- SAP ABAP Programming Tutorials - Free Training Course
- 【ABAP】Creat a client-server demo to process a http request using SAP Web AS
- ABAP总结之十二,SAP Archiving(1)--OverView
- [ZT]ABAP:利用SAP定时器自动刷新ALV
- SAP ABAP程序优化-多线程并行处理
- SAP ABAP package creation
- 和小白一起学ABAP – 10 SAP程序设计之 ABAP基础
- ABAP:SAP报表性能的优化
- SAP ABAP程序性能优化 2
- SAP内存/ABAP内存/共享内存区别(收集来的)
- ABAP - 3D Graphs with SAP
- 成为SAP开发的ABAP/Java双语者(翻译)
- ABAP--SAP显示处理进度的函数
- SAP ABAP编程 数据库内容导出到excel
- ABAP--SAP显示处理进度的函数
- SAP ABAP编程 用LOOP READ TABLE的方法代替双LOOP内表的方法