码迷,mamicode.com
首页 > 数据库 > 详细

ABAP 动态SQL语句

时间:2019-04-25 14:42:18      阅读:1120      评论:0      收藏:0      [点我收藏+]

标签:tin   alt   class   end   tab   table   new   name   inf   

动态定义SELECT字段

可以动态定义SELECT语句字段。保存动态语句的结构体GS_LINE最多可以容纳72位CHAR类型。结构体GS_LINE为null时与 * 相同,相当于SELECT。

例子:

DATA:GT_ITAB TYPE STANDARD TABLE OF SFLIGHT.
DATA:GS_ITAB LIKE LINE OF GT_ITAB.

DATA:GS_LINE TYPE C LENGTH 72."最多恶意容纳72位CHAR类型

DATA:GT_LIST LIKE TABLE OF GS_LINE(72).

GS_LINE = CARRID CONNID.

SELECT DISTINCT (GS_LINE) INTO CORRESPONDING FIELDS OF TABLE GT_ITAB FROM SFLIGHT.

 IF SY-SUBRC = 0.
   LOOP AT GT_ITAB INTO GS_ITAB.
     WRITE:/ GS_ITAB-CARRID,GS_ITAB-CONNID.
   ENDLOOP.
 ENDIF.

动态指定SELECT语句的WHERE条件

可以动态地写SELECT语句的WHERE条件。下列语句中的itab可以定义成最大为72位的内表。

  SELECT...WHERE(<itab>)

例子1:

DATA GS_WHERE TYPE C  LENGTH 72.
DATA GV_CARRNAME TYPE SCARR-CARRNAME.
DATA GV_CARRID TYPE SCARR-CARRID VALUE AC.
CONCATENATE CARRID = ‘‘‘GV_CARRID‘‘‘‘ INTO GS_WHERE.
SELECT SINGLE CARRNAME
  INTO
  GV_CARRNAME
  FROM SCARR
  WHERE (GS_WHERE).

WRITE:/ GV_CARRNAME.

结果:

技术图片

技术图片

是在数据库表SCARR中读取字段值CARRID等于AC的SELECT语句,在这里动态的给出了WHERE条件。

当需要给出两个字段以上查询条件时要把查询条件追加到内表中使用,如以下例子。

例子2:

技术图片

技术图片

结果:

技术图片

 

 

 

 

 

ABAP 动态SQL语句

标签:tin   alt   class   end   tab   table   new   name   inf   

原文地址:https://www.cnblogs.com/aqsyc/p/10768188.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!