2012-02-27 56 views
0

我們使用了一個工具,該工具對某個數據庫進行操作,當我們對該工具進行一些更改時,它將更新某些值。 這需要很長時間才能完成一些簡單的任務。 我只需要找出哪個表,列和該列的值得到更新。在oracle9i中通過數據庫搜索其值='xyz'的列名?

爲此,我需要找出整個數據庫的哪個column_name具有值「XYZ」和相應的表/表。

這些的任何腳本。

+0

[Oracle搜索所有表中所有列的字符串](http:// stackoverflow。com/questions/6389666/oracle-search-all-tables-all-columns-for-string) – 2012-02-27 11:04:18

+0

這可能也有幫助:http://stackoverflow.com/a/5350405/330315 – 2012-02-27 11:06:06

+0

另一種方法是跟蹤數據庫,而該工具正在運行。 – 2012-02-27 12:55:05

回答

3

僅僅因爲可以做到並不意味着應該做

我知道你已經用這種方式設計了你的過程,而且你很可能不想改變它,但是,如果你重新設計這個以避免做一些真的,認真的事情,你的生活會變得更好,不應該這樣做。搜索整個數據庫中的每個文本字段以搜索一些神奇的字符串是一個壞主意。它實際上只是大壞主意中的一個,它可能並不是最糟糕的主意,但它足夠糟糕的主意,你應該認真考慮做更好的事情。

好的,那有什麼問題嗎?

首先,它表示你沒有使用數據庫,你正在使用midden。你傾倒東西,然後希望稍後挖掘出來。這是人們數千年前做的事情(當火石是尖端技術時它很受歡迎),雖然它有助於保持考古學家們在這些垃圾堆中進行挖掘,但我們是軟件開發人員,而不是考古學家,不想定期做這種事情。

二,這是一個嚴重的性能殺手。你要麼編寫一些糟糕的靜態代碼來費力地檢查每個表中的每個字段,要麼編寫一些中等亮度的代碼來動態地創建一些更神奇的查詢,這將會費力地檢查每個字段在每個表中。這裏重點關注的是「辛苦」。如果說到這一點,那就是「非常糟糕」。掃描數據庫中每個表中的每一行,並測試所有這些行中的每個字段將變得很慢。非常非常緩慢。這將是死海龜在路上與輪胎標記在它的殼緩慢。這不是一件好事,除非你擁有當地電力公司的股票,並且希望確保每個生成的電子在你的僱主電腦中都有一個幸福的家。

第三,人們看到你的代碼時會有強烈的情緒。那些註定要進入管理職業的人會笑,因爲他們知道他們將不必維護它或嘗試解決性能問題。技術上的挑戰會哭,因爲他們會知道他們無法解決它。真正的代碼戰士會驚訝地凝視片刻,然後會咬緊牙關,打倒你,用他們的綠色魔杖打敗你,因爲只有他們會知道這種邪惡可能被阻止。

所以給一些思考重新設計。再次,僅僅因爲可以可以完成並不意味着應該完成。

分享和享受。

相關問題