修改表字段类型长度_如何查看类型为LRAW的SAP ABAP数据库表字段的内容

8265986e32c89e019c3567e31ce9de7a.png

SAP帮助文档上提到:当一个buffered数据库表被修改时,其buffer也会自动被更新,包括其他应用服务器实例上针对该表的buffer也会以异步的方式自动被更新。

Buffer表被修改的记录会被写入一个中央日志表DDLOG. Buffer的异步更新就是应用服务器定期地查看该表是否存在新的记录而实现的。

47b8b3468258e5662fa7d66e360b8ce8.png

我处于好奇,想在SE16里查看DDLOG的记录长什么样,发现notebook这个字段的类型为LRAW:

c3c970d80f65541b1eb3449fcfd24f56.png

为了做测试,我选择了一个buffer表,CRMC_PROC_TYPE, 往里面写入了一些数据:

8a6f8f5736975c2a9170136d64bc1767.png

然后SE16,找不到我刚才插入的记录,记载在这张表的什么地方了:

b3a6c668b9b742d662ea012c41a9e7f8.png

我当然可以用SELECT * 把包括notebook字段在内的所有数据都读取到ABAP内表里,但是我不知道如何解析类型为LRAW的字段,所以读出来也没用。

我国有句古话:毒蛇出没之处,七步之内必有解药。同样,DDLOG这张表存储的数据,如果没有对应的读取API,那么这些数据也毫无存在的价值。

所以对DDLOG执行where used list操作,必定可以找到读取该表的API.

e41549afac298257abca4e4597133de8.png

果然找到了一些有用的函数和类:

6f8e34badbf7e251c237964e0a864718.png

一些和这个DDLOG数据库表有关的操作和工具:

ABAP数据库表buffer同步监控工具RSDBBUF3

41b25d7f086f6be5ef2ce6683789c8fe.png

解析DDLOG-NOTEBOOK字段的函数:SBUF_SEL_DDLOG_RECS

用法如下:

DATA: lt_sync_tab    TYPE sync_tab_t,
      lv_tstamp_from TYPE ddlog-timestamp,
      lv_tstamp_to   TYPE ddlog-timestamp.
lv_tstamp_from   = '20160621061955'.
lv_tstamp_to    = '20160623000000'.
CALL FUNCTION 'SBUF_SEL_DDLOG_RECS'
  EXPORTING
    from_time      = lv_tstamp_from
    to_time        = lv_tstamp_to
    max_cnt        = 10000
    keep_db2_tstmp = 'X'
  CHANGING
    sync_tab       = lt_sync_tab.
SORT lt_sync_tab BY tabname.

使用这个函数,就能查到我之前修改数据库表CRMC_PROC_TYPE后自动写入表DDLOG的记录了。

80eedcd8e4adfde5e46aa480306ea28a.png

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

892ec9a7ce3ffa3ab2c77418117ae9fa.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值