在同一个workprocess里对两张表分别使用online update和update function module update
Created by Jerry Wang, last modified on Jul 22, 2014
有两张表:
用一个report测试,表1是直接online update,表2在update function module里update,由于有了SET UPDATE TASK LOCAL的keyword,使得function module ZINSERT_TABLE2 也在当前work process内执行。
data: ls_jerry1 type ZJERRYTABLE1,ls_jerry2 type ZJERRYTABLE2.ls_jerry1-client = sy-mandt.
ls_jerry1-inumber = 'i042416'.
ls_jerry1-name = 'WANGJER'.
insert ZJERRYTABLE1 FROM ls_jerry1.CALL FUNCTION 'ZINSERT_TABLE2' IN UPDATE TASK.SET UPDATE TASK LOCAL.COMMIT WORK AND WAIT.
function module内只是一个很简单的assert语句用于模拟update function module出错的情况:
F8执行report,收到期望中的update function module执行出错的提示:
但是SE16 里table1里检查table1 已经有一条entry成功插入了:
再来模拟table1 update不成功,但是table2 update成功的scenario. 将update function module改成update table2:
report 仍然保持不变,这样table1的update会由于duplicate key而失败。
report执行完之后,table1仍然只有1条数据,但是table2已经insert成功了。
究其原因,在这个例子里,table1和table2的update并不是放在同一个SAP LUW里的。这行ABAP OPEN SQL insert 语句(insert ZJERRYTABLE1 FROM ls_jerry1.), 什么时候会真正地把数据写到database server里?当遇到显式的database commit( COMMIT WORK ), 或者隐式的database 操作时,表1的操作就会立即写到database里,而与表2无关。
关于这两种不同的database commit方式,可以查看ABAP help:
在同一个workprocess里对两张表分别使用online update和update function module update相关推荐
- mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验
使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProduct pinnerjoin opendatasource('SQLOLED ...
- 关于跨DB增量(增、改)同步两张表的数据小技巧
有些场景下,需要隔离不同的DB,彼此DB之间不能互相访问,但实际的业务场景又需要从A DB访问B DB的情形,这时怎么办?我认为有如下常规的三种方案: 1.双方提供RESET API,需要访问不同DB ...
- mysql 两张表合并查询_中级数据分析-多表查询
表的加法 表的联结 联结应用案例 case应用案例 一.表的加法 加法:union 表的加法是把两个表的数据,按行合并在一起. 表的加法,会把两个表里重复的数据删除,只保留一个. 如果想保留重复数据, ...
- Oracle 对比两张表的数据是否一致
使用 minus 关键字(minus:差别,缺少) 有两张表CHECK_CITY_1和CHECK_CITY_2,现在要互相对比一下,两个表数据的差异,(即A中有哪些B里没有,B中有哪些A中没有) se ...
- MySQL 两张表数据合并
有一个需求, 需要从数据库中导出两张表的数据到同一个excel中 鉴于是临时的业务需求, 直接使用Navicat 进行查询并导出数据. 数据涉及到三张表 CREATE TABLE `bigdata_q ...
- JAVA两个表相关联_java实现两张表的关联查询(非数据库语言)
已知我有两张表: 我现在查询时需要同时获取两张表对应的数据.比如我想要获取 stuid,honName,obreson三个对应字段.我在脑子里梳理了一下思路,以我目前的知识储备,只能在数据库写一下两个 ...
- postgresql中连接两张表更新第三张表(updata)
目录 前言 准备数据库和表 表1 表2 最终员工表 SQL语句 扩展:with语句 前言 在工作中可能会遇到需要结合两张表的数据来添加到第三张表,或者说是第三张表数据有误,需要覆盖更新,本章通过举例来 ...
- oracle横向合并两张表,SQL中将两个表合并成一个新表 SQL如何合并两个表并生成一个新表?...
sql把两个表合并成一个新表的语句应该怎么写SQL SERVER: select * into 表3 from ( select 字段列表1 from 表1 union all select 字段列表 ...
- mysql查找两表中不同的数据库表_各位大侠怎样查找两张表的里面的数据(这两张表在不同的数据库)...
Oracle: 一.同一个实例中的两个表 相应有两个用户a(表t1).b(表t2) 将用户a的t1查询权限授予b用户 grant select on t1 to b; 之后,b就可以查询t1表了 se ...
最新文章
- SIM800C SIM卡唯一标识符ICCID
- 背水一战 Windows 10 (10) - 资源: StaticResource, ThemeResource
- 第二十二讲 延迟定理
- 【自动驾驶】28.【右手坐标系】与【右手法则】分析、【右手法则的正方向】 与 【逆时针为正方向】 的分析
- TSS详解 ——《x86汇编语言:从实模式到保护模式》读书笔记33
- HTML之六:图像的热区连接
- 6月开招|工业互联才是王道,最高可达50k!
- Android之开启内置闹钟与已安装的应用程序设置
- 在openEuler上做开发?这个大赛拿出30万寻找开源的yyds
- 关于以太网PAUSE的一点研究
- Android的ListFragment和Fragment的使用
- Java通过微信公众号获取地理位置信息
- 十大因素——造就优秀的董事长
- linux kill全部进程,linux进程管理及kill命令详解
- excel二极管伏安特性曲线_基础元件介绍—半导体二极管
- QT24A01 TNK以太网变压器
- ctf工具整理-持续更新
- JSCRIPT如何调试
- com.mongodb.MongoSocketOpenException: Exception opening socket
- arc093F Dark Horse
热门文章
- 凝结时光:ImageMagick 制作 gif
- wxPython实现在浏览器中打开链接
- windows 卸载IE8还原IE7的方法
- pyecharts学习(part5)--散点图,地图,词云图
- 第三次学JAVA再学不好就吃翔(part96)--异常
- Django(part4)--练习及re_path方法
- 第三次学JAVA再学不好就吃翔(part37)--接口概述
- 第三次学JAVA再学不好就吃翔(part2)--基础语法之注释
- 《复杂》读书笔记(part3)--熵
- 怎么让电脑屏幕一直亮着_电视机指示灯亮不开机怎么办 电视机故障及维修介绍【详解】...