数据仓库服务 GAUSSDB(DWS)-函数/过程管理:调试函数/过程

时间:2024-12-10 11:28:46

调试函数/过程

断点用于暂停其所在行中的PL/SQL程序的执行,可用断点控制执行并调试过程。设置并启用断点后,PL/SQL程序会在该断点所在的行停止执行,此时用户可以进行其他调试操作。

  • 设置或添加断点

    Data Studio支持为某行设置或创建断点。

    打开需要添加断点的函数/过程,双击行号字段左侧的断点标尺,设置断点,断点标志启用表示操作成功。如果函数在调试过程中不会间断或停止执行,则为其设置的断点未生效。

  • 使用“断点”窗格

    在“断点”窗格中可查看和管理已有断点。可从最小化窗口窗格中单击断点按钮打开“断点”窗格。

    在“断点”窗格中,勾选断点复选框,单击“启用”、“禁用”或“移除”按钮,进行断点启用、禁用或者删除操作。也可双击行号字段左侧的断点标尺设置断点;双击断点图标,将断点删除。

    在“PL/SQL Viewer”窗格,双击所需断点信息行,定位该断点。

    • “断点”窗格会列出每一个断点所在行的行号以及调试对象的名称。
    • 禁用断点后,程序不会在该断点处暂停执行,但该断点仍会保留(以备将来启用)。
    • 删除的断点无法恢复。
    • 按下“Alt+Y”可复制“断点”窗格内容。
  • 修改源代码

    调试过程中,如果用户修改了从服务器获取的源代码,并继续进行调试,Data Studio会提示错误:建议刷新该对象,再次执行调试操作。

    如果用户修改了从服务器获取的源代码,且在未设置断点的情况下执行或调试了该代码,Data Studio会显示服务器中源代码的执行结果。建议在进行调试或者执行前,进行刷新操作。

  • 使用断点调试函数/过程

    在要调试的行创建断点后,单击“调试”按钮或在“对象浏览器”中右键单击函数,选择“调试”。在弹出的“调试函数/过程”对话框中,输入参数信息。

    • 如果没有输入参数,则“调试函数/过程”对话框不会弹出。
    • 对于varchar和date数据类型,参数值需加半角单引号(');对于numeric数据类型,参数值可以不加半角单引号。要将参数值设为NULL,需输入NULL或null。
    • 调试或执行函数或过程期间,相同参数的值会在下次操作中被直接使用。首次执行时,参数值为空,可根据需要输入参数值。单击“确定”,参数值将被缓存。下次查询时,执行/调试期间会显示上次缓存的相同参数的值。某一连接被删除后,缓存的所有参数值都会被清除。
    • 调试过程中“调用堆栈”窗格会填充信息。

    • “变量”窗格显示当前的变量值。将鼠标悬停在函数/过程中的变量上,也会显示当前的变量值。“变量”窗格默认显示系统变量。必要时,用户可以屏蔽系统变量。按钮默认开启,即默认启用系统变量。

      设置/展示变量

      说明

      设置NULL值

      1. 在“变量”窗格中双击一个变量值。

        弹出对话框。

      2. 设置值为空。

      设置字符串值

      设置字符串值如下:

      • 要设置为abc,则输入abc。
      • 要设置为Master's Degree,则输入Master''s Degree。
      • 要将变量设置为文本(NULL),在“变量”窗格中设置NULL。

      设置Boolean值

      Boolean值t或f上加单引号。将t设成一个boolean变量,则在Variable窗格中输入't'

      显示变量值

      如果变量值是NULL文本,则显示为NULL。

      如果变量值是NULL,则显示为空。

      如果变量值为字符串,比如abc,则显示为abc。

    • 调试函数/过程期间,在编辑器中右键单击变量,可将变量添加至“监视器”窗格。如果变量处于被监控状态,“监视器”窗格中的值会随“变量”窗格中值的变化而变。
    • 在Data Studio中调试PL/SQl函数期间,将光标放在变量上方,则会显示该变量的信息。
  • 终止调试

    在工具栏中单击“终止调试”按钮或在“调试”菜单中选择“终端调试”。调试完成后,函数会继续正常执行,不会在任何断点暂停。

    调试完成后,“结果”页签中显示函数执行结果,“调用堆栈”和“变量”窗格将被清除。

  • Data Studio支持在调试完成后,提交/回滚查询结果。右键单击执行函数的终端窗格,勾选“使用回滚进行调试”启用回滚功能。
    • 如果启用了“使用回滚进行调试”选项,则调试后获取的函数执行结果不会保存在数据库中。
    • 如果禁用了“使用回滚进行调试”选项,则调试后获取的函数执行结果被提交到数据库中。
support.huaweicloud.com/tg-dws/DWS_DS_015.html