台灣最大程式設計社群網站
線上人數
547
 
會員總數:245465
討論主題:189222
歡迎您免費加入會員
討論區列表 >> Oracle >> 請問有辦法得知程式動到哪幾個table嗎?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問有辦法得知程式動到哪幾個table嗎?
價值 : 200 QP  點閱數:1899 回應數:2

樓主


初學者
50 21
554 31
發送站內信

請問各位前輩,目前公司有套軟體連接oracle資料庫,其中部分資料需要大量修改,想自己由資料庫來批次修改,目前我有資料庫完整權限,但是資料庫內的table有3千多個,請我要怎樣才能我要改的是那個table呢?還是說oracle有log檔可以知道那個資料庫有異動嗎?謝謝。
本篇文章發表於2014-12-18 11:06
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

麥兜照日光
捐贈 VP 給 麥兜照日光 檢舉此回應
你好
Oracle中有提供LOGMNR功能.
可參考:Oracle 心得
或是查詢 V$TRANSACTION
可參考:TRANSACTION

查詢資料異動指令提供參考(藉由sql_redo 來得知有那些table)
v$logmnr_contents 這個 view, 比較常用的欄位有:
username: 使用者名稱 (ORACLE 的使用者)
row_id: 指令所異動到的資料的 ROWID.
session#: 執行指令的 session 號碼.
serial#: 執行指令的 serial 號碼.
sql_redo: 執行的指令.
sql_undo: 回復的指令.
session_info: 這個 session 的資料. (可能是空的, 或許要查更早之前的 log, 看看這個
session 什麼時候登入的, 在登入後的那幾筆交易可以由這個看出那一個機
器連上來的, 使用那個 OS 的使用者.


以上,希望對你有幫助!
本篇文章回覆於2014-12-18 14:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應


檢舉此回應
謝謝您的回覆,您提供的網頁我有看過,不過後來我使用另一個方式

這樣可以查詢某個時間點下的指令。
本篇文章回覆於2014-12-18 17:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.