在Oracle PL / SQL中,如何调试复杂的存储过程?
例如,下面的代码,它使用循环+相关子查询。怎么完全明白呢?我了解到调试的最佳方法是分而治之,然后如何将这些编码切成小块?
由于
v_count := 1;
while v_count > 0
LOOP
update tbl_A a
set a.name = (select b.name from tbl_B b where a.id = b.id)
where a.id = (
select c.id from tbl_C c where c.id = a.id
)
v_count := sql%rowcount;
END LOOP
答案 0 :(得分:1)
您不会说出您正在使用的工具,但如果您使用的是Oracle SQL Developer,它会包含一个调试器,允许您逐行浏览代码,设置断点等等 - 调试GUI的所有典型功能。
而且,它是免费的。 Get it here
答案 1 :(得分:0)
尝试注释掉部分代码,然后将最远的结果存储在变量中。
然后你可以选择它:SELECT @varname
至少MYSQL 5.x处理它的方式。