如何查看类型为LRAW的SAP ABAP数据库表字段的内容
SAP幫助文檔上提到:當一個buffered數據庫表被修改時,其buffer也會自動被更新,包括其他應用服務器實例上針對該表的buffer也會以異步的方式自動被更新。
Buffer表被修改的記錄會被寫入一個中央日志表DDLOG. Buffer的異步更新就是應用服務器定期地查看該表是否存在新的記錄而實現的。
我處于好奇,想在SE16里查看DDLOG的記錄長什么樣,發現notebook這個字段的類型為LRAW:
為了做測試,我選擇了一個buffer表,CRMC_PROC_TYPE, 往里面寫入了一些數據:
然后SE16,找不到我剛才插入的記錄,記載在這張表的什么地方了:
我當然可以用SELECT * 把包括notebook字段在內的所有數據都讀取到ABAP內表里,但是我不知道如何解析類型為LRAW的字段,所以讀出來也沒用。
我國有句古話:毒蛇出沒之處,七步之內必有解藥。同樣,DDLOG這張表存儲的數據,如果沒有對應的讀取API,那么這些數據也毫無存在的價值。
所以對DDLOG執行where used list操作,必定可以找到讀取該表的API.
果然找到了一些有用的函數和類:
一些和這個DDLOG數據庫表有關的操作和工具:
ABAP數據庫表buffer同步監控工具RSDBBUF3
解析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'EXPORTINGfrom_time = lv_tstamp_fromto_time = lv_tstamp_tomax_cnt = 10000keep_db2_tstmp = 'X'CHANGINGsync_tab = lt_sync_tab. SORT lt_sync_tab BY tabname.使用這個函數,就能查到我之前修改數據庫表CRMC_PROC_TYPE后自動寫入表DDLOG的記錄了。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的如何查看类型为LRAW的SAP ABAP数据库表字段的内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 侍魂大天狗怎么打
- 下一篇: micro和typec区别