ABAP SY-SUBRC 使用过程中返回值的几种含义

摘要:
调试时,经常会遇到“SY-SUBRC”的返回值。SY-SUBRC=8:仅当使用“SELECTSINGLEFORUPDATE”时,这意味着在WHERE条件中指定了多个记录,并且没有选择任何记录。使用INSERT语句向表中插入一行。必须注意,INSERT的顺序与表中字段的顺序一致:SY-SUBRC=0:插入成功,SY-DBCNT包含插入的行数,0或1。SY-SUBRC=4:插入失败,因为存在相同的KEY。使用LOOP语句遍历内部表:SY-SUBRC=0:循环至少执行一次。SY-SUBRC=4:未找到和删除符合条件的记录。

当进行Debug的时候,经常会遇到"SY-SUBRC"的返回值。具体如何使用。在各种语句下返回值。

================= FUNCTION MODULE (或RFC中) SY-SUBRC 的含义 ================
使用SELECT语句选择查询:
SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。
SY-SUBRC = 4: 没有数据。
SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”时才会有,
              表示: WHERE条件指定的记录不止一行,结果是没有记录被选中。

使用INSERT语句,向表中插入一行,必须注意INSERT的顺序与表中字段的顺序一致:
SY-SUBRC = 0: 插入成功,SY-DBCNT包含了插入的行数,0或1。
SY-SUBRC = 4: 由于有相同的KEY存在,所以插入失败。

使用LOOP语句来遍历一个内表:
SY-SUBRC = 0: 循环至少被执行一次。
SY-SUBRC = 4: 循环没有被执行,可能是没有数据,也可能是没有符合条件的记录。

使用DELETE语句来删除一条记录:
SY-SUBRC = 0: 找到一行并删除之,如果该表有不唯一主键,也就是有多条重复的记录,则只删除第一条记录。
SY-SUBRC = 4: 没有找到符合条件的记录,也没有删除。

使用UPDATE语句来更新一条记录:
SY-SUBRC = 0: 找到记录并更新,(如果有多条记录呢?)
SY-SUBRC = 4: 没有找到符合条件的记录,也没有更新。

免责声明:文章转载自《ABAP SY-SUBRC 使用过程中返回值的几种含义》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win7操作系统常见故障解决方法汇总python+flask下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ABAP如何使用CL_SALV_TABLE 的代码样例(2004以后版本)

1、简单的CL_SALV_TABLE 的使用REPORT ZALVOM_DEMO1.data: ispfli type table of spfli.data: gr_table type ref to cl_salv_table. start-of-selection.select * into table ispfli from spfli.cl_sa...

本地开发好的 SAP Fiori Elements 应用,如何部署到 ABAP 服务器上?

这是 Jerry 2021 年的第 29 篇文章,也是汪子熙公众号总共第 300 篇原创文章。 之前 Jerry 的两篇文章,分别介绍了如何在本地使用 Visual Studio Code 创建一个 SAP Fiori Elements 应用,以及使用 Fiori Elements Controller Extension 理念,对该 Fiori Elem...

Unity3d 跑酷游戏 之Character Controller篇

                                              unity3d  Character Controller                                                                                       @by  广州小龙       ...

C++20新特性

C++20新特性 新增关键字(keywords) concept requires constinit consteval co_await co_return co_yield char8_t 模块(Modules) 优点: 1)没有头文件; 2)声明实现仍然可分离, 但非必要; 3)可以显式指定导出哪些类或函数; 4)不需要头文件重复引入宏 (incl...

ABAP-供应商主数据创建(公司视图)

FUNCTION zmm_fm_21_04.*"----------------------------------------------------------------------*"*"本地接口:*"  IMPORTING*"     VALUE(IN) TYPE  ZSLIFNR_SRM*"  EXPORTING*"     VALUE(OUT...

MySQL- exists的用法介绍(返回值True或False)-not exists反过来查询的应用

区别:> in exists--大于或者等于等只能匹配一个值--in可以匹配多个值,列匹配多个值--EXISTS判断子查询是否返回null,如果返回null那么就匹配失败,否则匹配成功 子查询 -- 查询部门所有的人工资都大于1000 -- 即查询部门内所有的人都不小于等于1000 - 即不存在有小于等于1000的部门 SELECT * FROMem...