调试存储过程
NineData 存储过程调试功能提供可视化的执行与调试能力,支持设置断点、单步执行、变量监控及异常捕获,帮助用户快速定位并解决数据库逻辑问题。
背景信息
在企业级应用中,数据库不仅是数据存储中心,还承载了大量复杂的业务逻辑,例如数据校验、批量处理、统计计算等。这些逻辑通常通过存储过程、函数和包来实现。 然而,传统调试方式存在以下痛点:
- 需要手动编写 PL/SQL 调试脚本,过程繁琐且易出错。
- 无法直观看到执行过程中的变量值、调用堆栈及 DBMS 输出。
- 异常捕获困难,定位问题耗时。
存储过程调试功能正是为了解决这些问题而设计,通过可视化调试工具,用户可以更高效地开发、测试和维护数据库逻辑。
功能介绍
NineData 存储过程调试功能用于在数据库中对存储过程(Procedure)、函数(Function)及包(Package)进行可视化的执行与调试,极大简化了数据库开发与运维人员在复杂业务逻辑中的问题定位与修复流程。
- 可执行:支持直接调用存储过程或函数,并查看返回结果或输出信息。
- 可调试:支持断点设置、单步执行、变量值查看、异常捕获等调试操作。
使用场景
新开发存储过程的验证:在存储过程编写完成后,通过调试功能逐步执行,确认逻辑正确性。
生产问题快速定位:当生产环境中出现异常,可通过调试功能还原执行过程,快速找出问题根源。
逻辑优化与性能调试:对运行缓慢或结果不准确的存储过程进行逐步调试,分析瓶颈或逻辑缺陷。
前提条件
在商业化版本下(、),请确保您的包年包月订阅未过期,否则将无法正常使用数据库 DevOps 服务。您可以在 NineData 控制台页面右上方快速查看剩余配额以及到期时间。
- 使用的数据源类型为 Oracle、PostgreSQL。
- 有足够的数据库权限(执行、调试、查看对象定义等权限)。
操作步骤
在 SQL 窗口左侧的导航树中,展开目标非表对象(存储过程|函数|包)。
右键单击目标非表对象,单击||,跳转至调试页面。
提示- 如果在右键菜单中没有找到调试选项,请确认您的目标非表对象已通过编译。
- 未编译通过的非表对象会在图标上标注红色感叹号,您可以将鼠标悬浮于红色感叹号上查看具体报错信息,修复错误后重新尝试。
- 右键菜单中提供编译对象功能,对于不是非表对象本身原因的错误,可在修复后通过编译按钮重新验证。
您可以在调试页面进行如下操作:
操作 说明 启动调试(Debug)
开始执行调试会话,输入初始测试变量值。 运行(Start)
运行代码,支持断点暂停。 回到开头(Resume)
回退至调试的开头。 单步跳过(Stepover)
执行当前行但不进入子过程/函数内部。 单步进入(Stepinto)
执行当前行并进入被调用的子过程/函数内部。 单步退出(Stepout)
执行完当前子过程/函数并返回上一层。 停止(Stop)
停止调试。 查看变量 调试过程中,可在变量|值区域实时查看或修改变量值。 查看日志(DBMS 输出) 跑完整个调试过程后,可以在日志区域查看过程中的 DBMS_OUTPUT.PUT_LINE
输出内容。