首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取当前LUW中的原始(更改前) DB值?

读取当前LUW中的原始(更改前) DB值?
EN

Stack Overflow用户
提问于 2018-03-22 12:57:45
回答 1查看 802关注 0票数 9

当表已在当前LUW中更改但尚未提交时,是否可以检索该表的旧值或原始值?

我正在实现一个BAdI,它应该用于根据对对象执行的更改来引发消息,但是SAP实际上并没有在BAdI中提供原始的对象数据。尝试使用SELECT语句读取数据不起作用,因为挂起的更改已经在此时应用,只是没有提交。

如果我调试代码,我可以在SE16中看到旧的值,但是似乎我在这个BAdI中执行的任何SELECTs都返回了未提交的更改值。

有读取原始数据的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-22 15:31:30

在相同的数据库LUW中读取先前更新的表时,将始终返回更新的值。因此,至少需要从另一个数据库LUW读取表。

默认情况下使用的隔离水平取决于所使用的数据库类型。对于HANA和Oracle,默认为“提交读取”,但其他数据库默认使用“未提交读取”。

如果不使用HANA/Oracle,则可以通过调用函数模块DB_SET_ISOLATION_LEVEL暂时切换到“提交的读”隔离级别。

然后,可以使用业务连接 (前缀R/3*)从另一个数据库LUW读取表,例如:SELECT ... FROM yourtable ... CONNECTION ('R/3*temp') ...

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49429331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档