ABAP 关于OPEN SQL执行返回值的说明

导读:在执行open sql的过程中,会有返回值,abap会将执行的返回值存储于sy-subrc这一系统变量中,不同的返回值代表不同的执行结果。下面对结果进行分析。

使用SELECT查询语句

sy-subrc值

执行结果

0

至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。

4

没有数据。

8

只有使用“SELECT SINGLE FOR UPDATE”时才会有,表示: WHERE条件指定的记录不止一行,结果是没有记录被选中。

使用INSERT插入语句

sy-subrc值

执行结果

0

插入成功,SY-DBCNT包含了插入的行数,0或1。

4

由于有相同的KEY存在,所以插入失败。

使用UPDATE更新语句

sy-subrc值

执行结果

0

找到记录并更新

4

没有找到符合条件的记录,也没有更新。

使用DELETE删除语句

sy-subrc值

执行结果

0

找到一行并删除之,如果该表有不唯一主键,也就是有多条重复的记录,则只删除第一条记录。

4

没有找到符合条件的记录,也没有删除。

使用LOOP循环语句

sy-subrc值

执行结果

0

循环至少被执行一次。

4

循环没有被执行,可能是没有数据,也可能是没有符合条件(where)的记录。

注:借助这些返回值可以判断OPEN SQL 的事务是否允许被提交(commit work/rollback work)

说明:查询了网上很多资料,得到的结果是ABAP没有开启事务这一说,从程序开始执行,ABAP 的事务就自动开始了,除非手动commit work或者rollback work,否则事务会一直开启到程序执行完毕或者一个屏幕执行完毕后才自动提交。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值