SAP ABAP OPEN SQL实例
1.SQL执行错误类 CX_SQL_EXCEPTION
获取错误消息:l_text = cx_sql_exception->get_text( ).
2.数据插入
A.单条插入:INSERT <tabname> FROM <wa>
B.多条插入: itab 内表的行结构也必须和数据库表的行结构一致; ACCEPTING DUPLICATE KEYS :如果现出关键字相同条目, 系统将 SY-SUBRC 返回 4 ,并跳过该条目,但其他数据会插入进去
INSERT <tabname> FROM TABLE < itab > [ ACCEPTING DUPLICATE KEYS ]
3.数据更新:
A.单条更新:UPDATE dbtab FROM wa
B.多条更新:UPDATE dbtab SET f1 = g1 … fi = gi WHERE <conditions>
UPDATE dbtab FROM TABLE itab
4.数据删除:
A.单条删除:DELETE dbtab FROM wa
B.多条删除:DELETE dbtab FROM TABLE itab
DELETE FROM dbtab WHERE <conditions>
5.插入或更新
A.单行操作:MODIFY dbtab FROM wa
B.多行操作:MODIFY dbtab FROM TABLE itab
6.数据查询
A.CASE用法
SELECT EBELN,EBELP,VGABE,CASE VGABEWHEN '1' THEN '物料凭证' "此处也可以返回表中字段 ELSE '发票凭证'END AS VGABT ,BELNR,BUZEIFROM EKBEWHERE EBELN IN @S_EBELNINTO TABLE @GT_EKBE.
B.SUBSTRING ,LPAD,LEFT
SELECT EBELN,EBELP,VGABE,CASE VGABEWHEN '1' THEN '物料凭证'ELSE '发票凭证'END AS VGABT ,BELNR,SUBSTRING( BELNR,1,5 ) AS BELNRT, "字符转换截取LEFT( BELNR,5 ) AS BELNR1, "字符截取LPAD( BELNR,20,'X' ) AS BELNR2, "字符补位填值BUZEI
* @SPACE, ”为字段填空值FROM EKBEWHERE EBELN IN @S_EBELNINTO TABLE @GT_EKBE.
C.CONCAT,字段连接
SELECT CONCAT( CONCAT( LPAD( carrid,2,'A' ),LPAD( carrname,21,'B' ) ),LPAD( url,40,'C' ) ) AS lineFROM scarrINTO TABLE @DATA(result).cl_demo_output=>display( result ).
D.LPAD在关联条件中使用填充位数,解决内外部造成无法匹配的原因
SELECT EKBE~EBELN,EKBE~EBELP,EKBE~GJAHR,EKBE~BELNR,RSEG~BUZEI,RSEG~SHKZGFROM EKBEINNER JOIN RSEGON LPAD( EKBE~BUZEI,6,'0' ) = RSEG~BUZEI "EKBE~BUZEI N型 4位 ,RSEG~BUZEI N型 6位AND EKBE~BELNR = RSEG~BELNRAND EKBE~GJAHR = RSEG~GJAHRWHERE EKBE~EBELN IN @S_EBELNINTO TABLE @DATA(result1).cl_demo_output=>display( result1 ).
动态OPEN SQL
SELECT ( column ) FROM ( dbtab ) WHERE (cond)
INTO CORRESPONDING FIELDS OF TABLE itab .
TABLES:MKPF.SELECT-OPTIONS:S_MBLNR FOR MKPF-MBLNR .PARAMETERS L_TYPE TYPE C.START-OF-SELECTION.TYPES:BEGIN OF TY_MKPF,MBLNR TYPE MKPF-MBLNR,MJAHR TYPE MKPF-MJAHR,VGART TYPE MKPF-VGART,BLART TYPE MKPF-BLART,ZEILE TYPE MSEG-ZEILE,MATNR TYPE MSEG-MATNR,WERKS TYPE MSEG-WERKS,END OF TY_MKPF,TT_MKPF TYPE STANDARD TABLE OF TY_MKPF,line_type TYPE c LENGTH 72.DATA:LT_MKPF TYPE TT_MKPF,L_COND TYPE STRING,L_DBTAB TYPE STRING,L_SUBRC TYPE SY-SUBRC,LT_COLUMN TYPE STANDARD TABLE OF line_type.CLEAR:LT_COLUMN,L_DBTAB,L_COND.IF L_TYPE = '1'.
* 多表关联查询
* 抽取元素编辑APPEND 'MKPF~MBLNR,' TO LT_COLUMN.APPEND 'MKPF~MJAHR,' TO LT_COLUMN.APPEND 'MKPF~VGART,' TO LT_COLUMN.APPEND 'MKPF~BLART,' TO LT_COLUMN.APPEND 'MSEG~ZEILE,' TO LT_COLUMN.APPEND 'MSEG~MATNR,' TO LT_COLUMN.APPEND 'MSEG~WERKS' TO LT_COLUMN.
* 关联条件编辑L_DBTAB = 'MKPF INNER JOIN MSEG '& 'ON MKPF~MBLNR = MSEG~MBLNR AND '& 'MKPF~MJAHR = MSEG~MJAHR '.L_COND = 'MKPF~MBLNR IN @S_MBLNR'.ELSE.
* 单表查询APPEND '*' TO LT_COLUMN.L_DBTAB = 'MKPF'.L_COND = 'MBLNR IN @S_MBLNR'.ENDIF.PERFORM FRM_DB_SELECT USING LT_COLUMNL_DBTABL_CONDCHANGING LT_MKPFL_SUBRC.cl_demo_output=>display( LT_MKPF ).FORM FRM_DB_SELECT USING UT_COLUMN TYPE STANDARD TABLEU_DBTAB TYPE STRINGU_COND TYPE STRINGCHANGING CT_DATA TYPE STANDARD TABLEC_SUBRC TYPE SY-SUBRC.SELECT (UT_COLUMN) FROM (U_DBTAB)WHERE (U_COND)INTO CORRESPONDING FIELDS OF TABLE @CT_DATA.
.C_SUBRC = SY-SUBRC.ENDFORM.
单表查询
多表查询
SAP ABAP OPEN SQL实例相关推荐
- SAP abap alv报表实例
这是一个sap alv报表实例 REPORT ztest005.*定义类型组 TYPE-POOLS: abap,slis.*定义ALV变量 DATA : lt_fieldcat TYPE slis_t ...
- SAP ABAP的SQL中加入常量列
有时候从数据库表里抓数据的时候想直接将该条SQL查到的语句加一个常量列,那么可以用类似以下的SQL语句实现: DATA: BEGIN OF ls_a, matnr TYPE matnr ...
- 【SAP Abap】SAP S/4 ABAP OPEN SQL中WITH的应用案例
SAP S/4 ABAP OPEN SQL中WITH的应用案例 1.原代码 2.调整后代码 3.对比 1.原代码 以HD实施开发的报表<往来交易与余额表>代码为例,原代码如下: REPOR ...
- SAP ABAP 接口开发(RFC,IDOC,Webservice,Native SQL)
SAP 常用的接口开发分为几种方式: (1)RFC (2)W ebservice (3)IDOC (4)Native SQL 有个视频课程对SAP的这几种接口开发讲的很好,给分享下:SAP AB ...
- 【SAP Abap】X档案:SAP ABAP 中 AMDP 简介及实现方法
SAP ABAP 中 AMDP 简介及实现方法 0.前言 1.AMDP 简介 1.1 代码下沉(Code Pushdown) 1.2 AMDP 是托管数据库过程的容器 1.3 AMDP 的优缺点 1. ...
- 【Thunder送书 | 第四期】「SAP ABAP开发从入门到精通」
文章目录 前言 SAP系列丛书推荐 <SAP ABAP开发从入门到精通> 章节目录 送书福利 前言 Thunder送书第四期开始啦!这次活动联合机械工业出版社为大家继续带来福利,本期将赠送 ...
- ABAP 动态 SQL
ABAP的sql语句是可以动态生成的,这个特性可以带给我们很多的便利. 比如SAP对费用的存储结构可能会采用 将会计月作为栏位的情况,及 period001,period002...等这样方式来存储值 ...
- 使用 ABAP Open SQL 的 Select AS 别名,提高代码可读性
SAP ABAP 有些数据库表的字段名称,对于初学者来说不太友好,例如 USR01 表中的打印参数 SPLD, SPLG, SPDB, SPDA 等等. 如果直接应用在 OPEN SQL 里,不熟悉这 ...
- 使用 Excel 读取 SAP ABAP CDS View 通过 ODBC 暴露出来的数据
在阅读本文前,请务必先按照在 Excel 内使用 ODBC 消费 SAP ABAP CDS view 介绍的步骤,将 SAP BTP 平台 ABAP 环境下指定的 CDS view,通过 Open D ...
最新文章
- C# 在用户控件中添加自定义事件
- R语言dplyr包的mutate函数将列添加到dataframe中或者修改现有的数据列:基于条件判断创建布尔型指示变量、将异常离散编码转化为NA值
- 5.spring boot使用FastJson解析JSON数据
- 深度解析】Google第二代深度学习引擎TensorFlow开源(CMU邢波独家点评、白皮书全文、视频翻译)
- php+json对象格式,PHP 创建对象来输出 JSON 格式
- 温州大学《深度学习》课程课件(九、目标检测)
- JavaScript new对象的四个过程
- canal数据同步(canal安装)
- VC6.0下opencv1.0的环境配置
- mac pandas文件路径_Mac进阶必看:如何利用Automator快速获取文件路径
- 这几天整理的 飞秋官方下载
- 软件工程复习笔记 UML
- 内存的工作原里(二)
- Ubuntu(Deepin)搭建Android开发环境(Android Studio)
- tomcat访问manager报404;server.xml中配置了Context path
- Oracle 表对象被锁的解决办法
- 【java虚拟机序列】java中的垃圾回收与内存分配策略
- 【AAAI2021】纠结于联合学习中的建模方法?快来看看图网络显式建模!
- word2vec模型保存为npy文件 clh
- 基于vue 2.x的移动端网页弹窗插件wc-messagebox(支持Alert,Confirm,Toast,Loading)
热门文章
- 前端-解除事件的绑定
- 【CSS基础】基础选择器+字体文本相关样式
- TongWeb生产系统应急处理方案
- 关于MIUI12.5或者任何无法使用GMS谷歌全家桶的解决办法
- 天津计算机三加二学校有哪些,天津3+2学校有哪些学校在招生
- COSCon'22 元宇宙参会指南来啦!
- C/C++中结构体和类的区别
- html表单判断字符数,JS判断字符串长度,结合element el-input el-form 表单验证(英文占1个字符,中文汉字占2个字符)...
- 实现表格中每行展开收起内容
- 信息系统管理项目监理工作:四控三管一协调