SQLDeveloper 在包主体和包规范之间跳转

Posted

技术标签:

【中文标题】SQLDeveloper 在包主体和包规范之间跳转【英文标题】:SQLDeveloper jump between Package body and Package spec 【发布时间】:2014-04-10 15:10:37 【问题描述】:

我目前使用的 Oracle SQLDeveloper 比以往任何时候都多,而且我开始喜欢这个工具。

我经常使用 Shift+F4 来跳转到一个包/函数/过程。但我并没有真正理解的一件事是如何直接跳转到包体,或者作为替代方案,在规范和包体之间切换的某种快捷方式。

Toad 有类似的东西,我在 SQLDeveloper 中找不到这个功能。

我也知道您在屏幕左侧有对象树,但当您已经查看其规范时,这并不是导航到包体的最佳方式。特别是如果你有 300 个类似名称的包......

对于每天使用 SQLDeveloper 工作并使用包进行大量开发的人来说,必须有一种方法来做到这一点......

我希望有一些神奇的捷径或一些不起眼的插件。

【问题讨论】:

您已将其标记为两个不同的 PL/SQL GUI——Oracle SQL Developer 和 Allround Automation PL/SQL Developer。你真的是故意的吗?您的问题文本似乎特定于 SQL Developer。您是否专门寻找键盘快捷键而不是编辑器中的“打开正文”按钮?您使用的是什么版本的 SQL Developer? 感谢您的回答。刚刚修复了标签。谢谢。刚刚意识到包规范任务栏中有一个按钮,但在我的情况下它被禁用了。可能是一些数据库配置。我目前正在使用 SQLDeveloper 4.1 (Last evrsion) 和 ORacle 9.2i 我只看到该按钮在没有符合特定包规范的包体时被禁用... 这可能与 DBA_OBJECTS 或 ALL_OBJECTS 的授权有关。我正在尝试在网上查找它,但没有成功。为了检查包的实现而不得不浏览整个树真的很令人沮丧。 @JGS 如果下面的答案是正确的,请将其标记为绿色勾号。其他用户会知道它是正确的! 【参考方案1】:

见上图——向下的侧箭头——点击——它会打开函数定义。 谢谢

【讨论】:

【参考方案2】:

使用 Shift+F4 打开 package spec 后,按 Ctrl+Shift+F12 打开或在 body 和 spec 之间切换

【讨论】:

【参考方案3】:

进入查看菜单,点击查找数据库对象选项。在 find db object 窗格中输入包的名称并选择 DB。

spec和body都会出现,双击打开。

【讨论】:

【参考方案4】:

您有几个问题:

    如何“跳入”一个 pl/sql 对象和 如何从规范切换到正文,反之亦然

如何“跳入”一个 pl/sql 对象

Ctrl+鼠标悬停+单击

如果你不喜欢这个鼠标功夫,你也可以指定一个键盘快捷键,我教你怎么做here。

如何在规格和正文之间切换

您可以使用装订线中的箭头,它们指向上或下,您可以使用工具栏按钮,也可以使用键盘快捷键。

如果您在装订线中使用“箭头”,您将直接转到规范或正文中该项目的相应位。使用工具栏按钮/kb 快捷方式只会将您带到规范或正文的第 1 行。

I talk about these PL/SQL features and more on my blog.

【讨论】:

【参考方案5】:

(这至少是我的PLSQL-DEv版本(11.0.4.1774),默认设置)

查看规格的快捷方式。 + 正文是 SHIFT+ F5,然后 CTRL+ H 切换到“正文”选项卡。

如果您具有查看包正文的某些权限,尤其是 DEBUG 权限,则此方法有效:请您的 DBA 为您做一个

GRANT DEBUG on <package_you_want_to_view_the_body_of> to <your_user>

GRANT DEBUG on <package_you_want_to_view_the_body_of> to PUBLIC

请注意,但您可能还需要 EXECUTE 权限才能查看。如果需要,同样的事情,请向您的 DBA 询问与上述类似的授权。

注意:

我必须在 Oracle 12c 中为代码助手做的另一件事是在键入时查看包:检查 工具 > 首选项中的“使用 DBA 视图(如果可用)”:

【讨论】:

以上是关于SQLDeveloper 在包主体和包规范之间跳转的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL:子程序或游标“P_STATUS_UPDATE”在包规范中声明,并且必须在包主体中定义

oracle包的创建

方法和包

方法和包

方法和包

方法和包