2011-10-31 66 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