SuperAPI AI 工具集

plsql-explore

数据与分析

查看项目

更新于 10-16 06:14

技能介绍

用途:在需要了解 Oracle 模式中的内容时使用,包括查找对象、阅读 PL/SQL 源码与签名、查看表列与真实数据类型、获取 DDL、搜索代码以及分析依赖关系。核心原则是直接询问数据库,而不是读取导出的 .sql 文件——导出仓库容易过期,可能缺少类型、包和索引,导致看起来正常的代码引用了数据库中不存在的对象。仅在数据库不可达,或需要对比仓库版本与实时数据库时才读文件。

主要能力与对应命令:检查连接与模式用 pythia check;按名称查找对象用 pythia ls "PKG_%";阅读带编译器行号的源码用 pythia src NAME(可加 --body、--spec);查看过程/函数签名用 pythia args NAME;查看列和真实数据类型用 pythia cols TABLE_NAME;获取完整 DDL 用 pythia ddl TABLE NAME;搜索全部 PL/SQL 文本用 pythia grep "text";查看对象依赖用 pythia deps NAME;查看反向依赖用 pythia impact NAME;精确标识符用法用 pythia plscope NAME;查找名称相似的程序用 pythia similar NAME;查看当前损坏对象用 pythia invalid、pythia errors;自由查询用 pythia sql "select ..."(仅限 SELECT/WITH)。

使用规则:截断总会被声明,输出以 -- truncated ... 结尾或在 --json 中带 "truncated": true;看到标记时应说明或继续获取(--limit、--offset、--max-lines),不可把截断列表当作完整结果。查找“某标识符在哪里使用”时优先用 plscope 而非 grep,因为 PL/Scope 由编译器记录且精确,grep 会匹配注释和相似名称;如果 PL/Scope 无数据,命令会提示并回退到 grep。src 的行号即编译器行号,报错在第 47 行就是 src 输出的第 47 行,无需偏移换算。默认输出上限用于保护上下文窗口,只对正在处理的对象提高上限。更深入的参考资料(字典视图、PL/Scope 启用方式、许可边界)见 reference/data-dictionary.md。

适用场景:审计或维护 Oracle 模式时快速定位对象、理解现有 PL/SQL 代码、评估修改影响范围、排查无效对象。限制:需要可用的数据库连接;sql 命令仅支持 SELECT/WITH;部分功能(如 PL/Scope 精确用法)依赖数据库端已启用并记录 PL/Scope 数据,否则回退到 grep;具体安装与授权信息暂未提供。