SAP ABAP——OPEN SQL(一)【INTO语句】

举报
Thunder Wang 发表于 2023/01/31 21:30:56 2023/01/31
【摘要】 本文主要介绍SAP ABAP中OPEN SQL的INTO语句

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


💅文章概要:本文主要介绍SAP ABAP中OPEN SQL的INTO语句


🤟每日一言:当你知道你不在是你的时候,你才是真正的你!


结构体插入(插入一条语句时)

SELECT...INTO [CORRESPONDING FIELDS OF] <wa> FROM <db> WHERE <condition>.

内表插入(插入多条语句时)

SELECT...INTO|APPENDING [CORRESPONDING FIELDS OF] TABLE <itab>
      FROM <db> WHERE <condition>

1. 当不需要连续查询多条语句并且依次插入内表时使用"INTO",因为每次使用INTO语句将数据插入内表都会先清空内表,示例代码及效果如下

REPORT ZWYZTEST_FOR_MANGO.

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.
DATA:GS_SFLIGHT TYPE SFLIGHT.

SELECT CARRID INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM SFLIGHT WHERE CARRID = 'AC'.
SELECT CARRID INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM SFLIGHT WHERE CARRID = 'AF'.

LOOP AT GT_SFLIGHT INTO GS_SFLIGHT.
   WRITE:GS_SFLIGHT-CARRID.
ENDLOOP.

2.当需要连续查询多条语句并且依次插入内表时使用"APPENDING",因为每次使用APPENDING语句将数据插入内表不会清空内表,保留先前的插入数据,示例代码及效果如下

REPORT ZWYZTEST_FOR_MANGO.

DATA:GT_SFLIGHT TYPE TABLE OF SFLIGHT.
DATA:GS_SFLIGHT TYPE SFLIGHT.

SELECT CARRID APPENDING CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM SFLIGHT WHERE CARRID = 'AC'.
SELECT CARRID APPENDING CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM SFLIGHT WHERE CARRID = 'AF'.

LOOP AT GT_SFLIGHT INTO GS_SFLIGHT.
    WRITE:GS_SFLIGHT-CARRID.
ENDLOOP.

SFLIGHT数据库表(下方示例代码也采用该数据库表)


PACKAGE用法

使用PACKAGE可以限制每次追加到内表里的数据件数,假设当n为5时,则每次只读取5条数据添加到内表中,注意!使用PACKAGE,结尾一定要使用ENDSELECT语句结束!

    SELECT...INTO|APPENDING [CORRESPONDING FIELDS OF] TABLE <itab>
       PACKAGE SIZE <n>
       FROM <db> WHERE <condition>.
    ENDSELECT.

Single Field

SELECT...INTO(f1,f2...)...

示例代码及效果:

REPORT ZWYZTEST_FOR_MANGO.

DATA:GV_CARRID TYPE SFLIGHT-CARRID.
DATA:GV_CONNID TYPE SFLIGHT-CONNID.

SELECT CARRID CONNID INTO (GV_CARRID,GV_CONNID) FROM SFLIGHT WHERE CONNID = 2415.
ENDSELECT.

WRITE:GV_CARRID,GV_CONNID.

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。