我正在寻找一种工具或在线资源,当给定 PL/SQL 代码时,它会提供有关执行 、insert
和的表的信息。select
update
delete
例如:
TABLE SELECT INSERT UPDATE DELETE
v_empl Yes Yes No No
它应该是静态的,即基于源的还是动态的(基于工作负载)?
查看 PL/SQL 的这个语法: https ://github.com/patrick133t/PLSQL
而这个 SQL 语法: https ://github.com/porcelli/plsql-parser
通过一些调整,您将能够从 PL/SQL 代码中提取所有 SQL 语句,并从所有 SQL 语句中提取所有表引用。
还要看DBA_DEPENDENCIES
景色。Oracle 在内部维护着类似的信息。
另请注意,存在类似insert "from" select
或可更新连接的语句,因此有时识别源表和目标表并非易事。