2011-10-31 90 views

回答

3

從理論上講,這應該是可能的(並且將需要大量的時間來執行!):

PL/SQL被解析並存儲在數據庫中的樹形結構PLUS M-代碼。該結構是DIANA加IDL的一些變體,而IDA又是Ada用來存儲解析結果的東西(PL/SQL與Ada非常相似)。更多信息參見http://download.oracle.com/docs/cd/B14117_01/appdev.101/b10807/e_limits.htmhttp://cs.felk.cvut.cz/10gr2/appdev.102/b14261/tuning.htm

另一個選擇是建立自己的解析器 - 一個出發點是http://it.toolbox.com/blogs/oracle-guide/building-a-plsql-code-parser-using-plsql-part-1-29704

一個非常有用的資源是http://www.blackhat.com/presentations/bh-usa-06/BH-US-06-Finnigan.pdf - 你會發現很多的信息,如何提取DIANA-/IDL-來自Oracle數據庫的信息可以幫助您實現目標。

+0

+1 - 謝謝,Peter Finnigan演示文稿涵蓋了如何爲對象轉儲DIANA的詳細信息,但存儲在包中的PL/SQL沒有將DIANA存儲在數據庫中。如果我很快就沒有更好的答案,我會接受你的。 – ninesided