SAP ABAP中的单记录缓冲
我的桌子是SAP ABAP中的单记录缓冲,abap,Abap,我的桌子是stud +-----+------+-------+ | no | name | grade | +-----+------+-------+ | 101 | naga | A | | 102 | raj | A | | 103 | john | A | +-----+------+-------+ 我使用的查询是: SELECT * FROM stud WHERE no = 101 AND grade = 'A'. 如果am使用单记录缓冲,缓冲区
stud
+-----+------+-------+
| no | name | grade |
+-----+------+-------+
| 101 | naga | A |
| 102 | raj | A |
| 103 | john | A |
+-----+------+-------+
我使用的查询是:
SELECT * FROM stud WHERE no = 101 AND grade = 'A'.
如果am使用单记录缓冲,缓冲区中存储了多少数据?这来自SE38中的ABAP关键字文档: SAP缓冲区-单记录缓冲 仅缓冲表中实际访问的行。 这需要的缓冲区空间比使用“通用”或“完全”时少 缓冲。另一方面,还需要更多的行政工作 更直接的数据库访问 因此,由于查询返回单个记录(基于显示的数据),因此它应该只获得一行并保存在缓冲区中
我建议查看SAP帮助和谷歌-还可以查看选择的单个键和未完全指定的键-在某些情况下缓冲区被绕过会出现问题-进行读取以供参考。此查询没有任何作用。没有“进入”条款。这意味着它不会存储任何选定的内容 你可能正在考虑做这样的事情
SELECT * FROM stud into wa_stud WHERE no = 101 AND grade = 'A'.
"processing of each single row is performed here
endselect.
或者像这样,只选择了1行(按主键排序的第一行)
select single * from stud into wa_stud where no = 101 and grade = 'A' .
或者,您可能希望将所有内容都带入表中,这意味着数字和等级不包括完整的主键
select * from stud into table it_stud where no = 101 and grade = 'A'.
建议使用
into
-子句,但不是必需的。如果使用tables stud.
定义表,则可以省略into子句。啊,是的。在这种情况下,他只需要endselect语句。>…或select single…