前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「SAP ABAP」OPEN SQL(一)【INTO语句】

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

作者头像
THUNDER王
发布2023-03-10 21:16:26
4480
发布2023-03-10 21:16:26
举报

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


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

目录

前言

数据库表准备

插入数据

       插入数据到工作区

       插入数据到内表

SELECT...INTO...

SELECT...APPENDING...

PACKAGE

Single Field

写在最后的话


前言

     各位小伙伴们大家好呀,欢迎来到SAP ABAP的OPEN SQL教程篇!本文主要介绍SAP ABAP中OPEN SQL的INTO语句!


数据库表准备

      本案例中使用的数据库表是SFLIGHT,以下是它的部分信息详细:


插入数据

       下面将对 OPEN SQL 中的插入数据语句进行详细介绍,插入数据语句主要包括了结构体插入和内表插入。

   插入数据到工作区

          结构体插入主要用于单条数据的插入

代码语言:javascript
复制
SELECT...INTO [CORRESPONDING FIELDS OF] <wa> FROM <db> WHERE <condition>.

参数解释:        <wa>:             工作区(结构体变量)        <db>:              数据库         <condition>:    where限制的条件

   插入数据到内表

          内表插入主要用于多条数据的插入,其中可选项有INTOAPPENDING 。 

代码语言:javascript
复制
SELECT...INTO|APPENDING [CORRESPONDING FIELDS OF] TABLE <itab>
FROM <db> WHERE <condition>

参数解释:        <itab>:            内表        <db>:              数据库         <condition>:    where限制的条件

         SELECT...INTO...

PS:当不需要连续查询多条语句并且依次插入内表时使用"INTO",因为每次使用INTO语句将数据插入内表都会先清空内表

示例代码及效果如下:

代码语言:javascript
复制
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.

         SELECT...APPENDING...

PS:当需要连续查询多条语句并且依次插入内表时使用"APPENDING" ,因为每次使用APPENDING语句将数据插入内表不会清空内表保留先前的插入数据

示例代码及效果如下: 

代码语言:javascript
复制
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.


PACKAGE

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

代码语言:javascript
复制
SELECT...INTO|APPENDING [CORRESPONDING FIELDS OF] TABLE <itab>
    PACKAGE SIZE <n>
    FROM <db> WHERE <condition>.
ENDSELECT.

参数解释:        <itab>:            内表 <n>: 数据件数        <db>:              数据库         <condition>:    where限制的条件


Single Field

代码语言:javascript
复制
SELECT...INTO(<f1>,<f2>...<fn>)

参数解释:        <f1>:            字段1 | 变量1 <f2>: 字段2 | 变量2 <fn>:            字段n | 变量n

示例代码及效果如下: 

代码语言:javascript
复制
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.


写在最后的话

       本文花费大量时间介绍了SAP ABAP中OPEN SQL的INTO语句,希望能帮助到各位小伙伴,码文不易,还望各位大佬们多多支持哦,你们的支持是我最大的动力!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 数据库表准备
  • 插入数据
  •    插入数据到工作区
  •    插入数据到内表
    •          SELECT...INTO...
      •          SELECT...APPENDING...
      • PACKAGE
      • Single Field
      • 写在最后的话
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档