【问题标题】:Tool for code Navigation in PL/SQLPL/SQL 代码导航工具
【发布时间】:2010-11-29 01:52:05
【问题描述】:

我必须研究和修改一个用 pl/sql 编写的大型且文档记录不佳的代码库。我使用 Oracle SQL Developer 浏览它,但它变得乏味,因为没有“转到声明”或“查找用法”选项,所以我必须手动转到引用的包以查找我想了解的函数或过程,或 grep 脱机副本以查找用法。

我曾尝试设置 vim+ctags,但繁复的 ctags 会因不区分大小写而感到困惑。

那么问题是,哪些工具可以轻松浏览 PL/SQL 代码?

【问题讨论】:

标签: oracle plsql ctags oracle-sqldeveloper


【解决方案1】:

我将我的 PL/SQL 包从数据库导出到文件系统以进行版本控制(我使用 Git)。包(主体和规范)都在同一个目录中。 我用 Visual Studio Code(当前版本 1.53.2)编辑包,因为 VS Code 对 Git 有很好的支持。

右键单击一个过程会打开上下文菜单,Go to definition(或 F12)会跳转到该过程,即使它是在另一个包中声明的。

您可以通过单击菜单 Go --> Back(或 Alt+LeftArrow)跳回。

【讨论】:

  • 对于 PL/SQL 文件的语法高亮,我使用了 VS 代码扩展 xyz.plsql-language
【解决方案2】:

Exuberant ctags能够为PL/SQL存储过程生成ctags文档,并且有大量可以读回标签的编辑器,包括Emacs和vi等经典。我个人将它与 Sublime Text 2 一起使用,用于处理 3000 多行存储过程定义。 (ST2 是一个很棒的全能编辑器,但在编辑 SQL 方面并不比任何其他编辑器特别好,它具有基本的代码突出显示,仅此而已。)

Exuberant 的标签唯一的问题是它只会生成一个标签条目,即使它多次看到定义,所以如果你把你的包声明和你的包主体放在同一个文件中,标签只会跳转到第一个条目(通常是声明)。

【讨论】:

    【解决方案3】:

    请参阅SD Source Code Search Engine 了解一种工具,该工具通过对源代码进行预索引,在大量源代码上的搜索速度比 grep 快得多。搜索引擎对语言敏感,因此您可以根据语言标识符、数字、关键字和运算符来形成查​​询。空白和 cmets 不会欺骗它。

    它适用于 PL/SQL 以及许多其他语言(C、C++、C#、COBOL、Java...)。

    【讨论】:

      【解决方案4】:

      我最近从 Oracle 的 SQL Developer 切换到 Quest 的 TOAD,我喜欢它!我最喜欢 TOAD 的是debuging 工具。我使用的功能可以在这两种产品中找到,但 TOAD 对我来说更容易使用,但 SQL Developer 是“免费的”。

      【讨论】:

      • 作为 OP,我在 TOAD 中也找不到任何“查找用法”功能。所以如果你知道它是否可用,请告诉我。
      【解决方案5】:

      试试Tobys PLSQL Editor。它给你:

      • 语法高亮
      • F3 跳转代码
      • 包装轮廓
      • 代码完成
      • 编译到数据库并突出显示错误
      • 使用 PLDoc 自动生成标头

      我仍在寻找一个很好的工具来查看依赖关系。您可以查询数据字典以查找包依赖关系,但它不会下降到包本身内的过程/函数级别或每个包内的行号。

      【讨论】:

        【解决方案6】:

        PL/SQL Developer,来自 Allround Automations 有一些很好的功能可以在代码中导航。您可以下载并安装一个完整功能的试用版,可以使用一个月。之后,如果您喜欢该工具并想继续使用它,您将需要支付(适度的)费用。

        【讨论】:

          猜你喜欢
          • 2016-11-15
          • 1970-01-01
          • 2010-10-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-18
          • 1970-01-01
          • 2013-09-01
          相关资源
          最近更新 更多