2011年8月29日 星期一

Oracle ERP R12. - Debug SQL Statement

因為有時候會需要知道Oracle Standard Form其背後運作的方式,會啟動sql trace來收集log並進行解析.
而Oracle還有另一個地方也會紀錄log在log table (但資訊可能沒有sql trace來的完整,不過也可以參考看看),做法如下:

Step 1. 先設定Profile
FND: Debug Log Enabled : Yes  <===== 注意:平當應該是No的狀態,不然會影响performance
FND: Debug Log Level : Statement  <====== Debug等級,要trace sql statement
FND: Debug Log Module : %  <=======Trace 的模組

Step 2. 紀錄目前的log sequence number.
select max(log_sequence) from fnd_log_messages ==> 先記下來,假設是100

Step3. 請重做你要Trace的動作 ==> 此時就會開始log,所以log sequence就會持續增加

Step4. 紀錄最後的log sequence number.
select max(log_sequence) from fnd_log_messages ==> 記下來,假設是150

Step5.  收集上述Step2 & Step4 (100~150)的log資料
SELECT LOG.module, LOG.message_text message
FROM FND_LOG_MESSAGES LOG
WHERE LOG.log_sequence BETWEEN 100 AND 150
ORDER BY LOG.LOG_SEQUENCE
==> 該內容就是一般Oracle Support可能會要求收集的資料,所以我們應該也可以參考看看該做法來trace sql statement.


沒有留言:

張貼留言