使用 sys.diana 和 sys.pidl 解析 PL/SQL

Ren*_*ger 6 oracle plsql parse

在我看来,应该可以用包sys.diana和解析现有的 PL/SQL sys.pidl,但我在互联网上没有找到任何东西,除了一些似乎解开包装包的脚本(这对我的目的来说是无用的) )。

那么,有没有人知道指向正确方向的指针?

kev*_*kio 3

涉及异常错误的官方文档描述了 DIANA:
PL/SQL 基于编程语言 Ada。因此,PL/SQL 使用 Ada 描述性中间属性表示法 (DIANA) 的变体,这是一种树结构中间语言。它是使用称为接口定义语言 (IDL) 的元符号来定义的。DIANA 由编译器和其他工具内部使用。

在编译时,PL/SQL 源代码被转换为机器可读的 m 代码。过程或包的 DIANA 和 m 代码都存储在数据库中。在运行时,它们被加载到共享内存池中。DIANA用于编译依赖程序;m代码被简单地执行。

我明白你为什么感兴趣。如果您喜欢深入了解底层的编译器,那么访问 PL/SQL 底层的编译器是很诱人的。尽管如此,当通过 PL/SQL 解析可以实现相同的目标时,我不愿意投入大量时间。

作为一个多次使用过你的网站的人,我只能感谢你的好奇心。