我正在努力了解pgAdmin调试器,并且对PostgreSQL相当陌生。我不知道我看到的行为是因为我犯了一个错误,还是仅仅因为调试器中的限制。
在函数的顶部,我声明了两个变量:
declare tuple record;
declare buffer text;在函数的正文中,我试图迭代临时表TT_CALENDAR中的行,因此可以检查局部变量窗口中临时表的内容:
for tuple in
select startdate, enddate from TT_CALENDAR
loop
buffer := concat(buffer, tuple.startdate::text, tuple.enddate::text,'|');
end loop;
buffer :='';断点设置在buffer := concat(...和行buffer :='';,程序执行按预期停止,但一旦我们退出循环并到达buffer :='';,字符串值就会从局部变量窗口中消失。
为什么在执行buffer :='';之前退出循环时缓冲区显示的值会从局部变量窗口中消失?就好像变量已经超出了范围。
是否有会导致长值在“局部变量”窗口值单元中换行的配置设置?
谢谢
发布于 2013-05-01 06:19:51
这听起来像调试器的bug。我通常建议跟踪pgadmin电子邮件列表,并提醒开发人员注意这个问题。
我没有理由知道变量将超出作用域,所以在我看来,它是调试器本身的一个bug。
https://stackoverflow.com/questions/15114115
复制相似问题