1

我正在寻找一种以某种方式导出或可视化 Oracle 中任意 PL/SQL 对象的解析树的方法,以允许在两个相似对象的解析树之间进行比较。这可能吗?

4

1 回答 1

3

理论上这应该是可能的(并且需要大量时间来实现!):

PL/SQL 被解析并作为树状结构加上 m 代码存储在数据库中。该结构是 DIANA 加 IDL 的一些变体,而 IDL 又是 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 数据库。

于 2011-10-31T09:08:46.793 回答