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