【问题标题】:Debugging PLSQL in Toad在 Toad 中调试 PLSQL
【发布时间】:2012-09-10 18:53:22
【问题描述】:

我一直在使用 PL/SQL 为 Oracle db 创建包,我正在尝试找到一种不使用“put_line”命令来调试 PL/SQL 包的好方法,有没有人有一些关于如何在 Toad 或 SQLPlus 上成功调试 PL/SQL 包?

【问题讨论】:

  • 您查看过 Toad 的内置文档吗? (帮助->索引->关键字“调试”)

标签: plsql toad


【解决方案1】:

要启用调试,请授予以下权限并重新打开 TOAD。它总是对我有用。

    GRANT ALTER SESSION TO <databaseUser>;
    GRANT CREATE SESSION TO <databaseUser>;
    GRANT EXECUTE ON DBMS_DEBUG to <databaseUser>;
    GRANT ALTER ANY PROCEDURE TO <databaseUser>;
    GRANT CREATE ANY PROCEDURE TO <databaseUser>;
    GRANT DEBUG ANY PROCEDURE TO <databaseUser>;
    GRANT DEBUG CONNECT SESSION TO <databaseUser>;

【讨论】:

    【解决方案2】:

    首先,为了能够调试 PL/SQL 代码,必须具有适当的数据库权限才能进行调试。 (GRANT DEBUG CONNECT SESSION TO user)。如果您没有被授予此权限,您的 DB 工具(如 Quest TOAD)甚至可能不会显示调试选项或可能显示它已禁用。

    其次,在调试之前,必须对代码(过程、函数或包)进行预编译以进行调试。当使用调试选项编译代码时,编译器会在编译后的代码中插入额外的数据,以便能够在调试过程中在断点处停止。 (使用Toggle compile with Debug 打开调试选项并编译您的代码)通过调试完成您的开发阶段后,您应该在不使用调试选项的情况下重新编译您的代码(关闭Toggle compile with Debug 并编译您的代码)。

    然后您应该在代码中插入调试断点,并在执行期间要在调试器中跟踪的监视(变量)。

    最后你应该用调试开始你的代码,执行将在第一个断点处停止,使用调试工具栏你可以在你的代码中进入、跳过、运行到光标...。

    【讨论】:

    • 我错过了一个按钮来继续执行直到下一个断点。我发现必须手动将光标放在下一行我希望调试器在使用“运行到光标”选项时停止非常烦人。另外,我不太明白“跨步”功能是如何工作的。对这些有什么提示吗?
    • 哦,对不起 - 我自己回复。我刚刚发现我需要使用“使用调试器执行 PL/SQL”才能恢复执行……哦!
    【解决方案3】:

    根据 TOAD 的版本不同,图标和工具栏看起来会有所不同,但过程是一样的:

    1. 确保“使用调试切换编译”选项已打开
    2. 点击“编译”按钮
        一个。设置断点
    3. 点击“使用调试器执行 PLSQL”

    蟾蜍 9.7

    蟾蜍 11.6

    【讨论】:

    • @sharkbait 你需要被授予允许你调试的数据库权限。确切的权限取决于 Oracle 版本。
    • 是否可以在 TOAD 中保存一组断点供以后使用?我的意思是......每次我重新启动它时,我都会丢失它们,并且我可能在某个包中有大量断点。此外,即使我尝试不关闭程序,它也经常崩溃,我必须每次重置它们,失去我的“战略”展示位置和一些有条件的展示位置......
    • 如何禁用包调试?没有办法/按钮禁用它。
    • @meadlai 我上面的截图可能有点过时了,也许图标改变了,但上面我突出显示并将调试按钮标记为“1” - 当按钮突出显示时表示它处于活动状态并且已单击,再次单击它将取消选择它并关闭该选项。单击按钮将其关闭后,您需要重新编译包以使更改生效。
    猜你喜欢
    • 2012-11-23
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2013-01-16
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    相关资源
    最近更新 更多