我正在尝试了解 pgAdmin 调试器,并且对 PostgreSQL 相当陌生。我不知道我看到的行为是因为我犯了一个错误,还是仅仅因为调试器的限制。
在我的函数顶部,我声明了两个变量:
declare tuple record;
declare buffer text;
在我的函数主体中,我试图迭代临时表 TT_CALENDAR 中的行,因此可以在 Locals 窗口中检查临时表的内容:
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 :='';
字符串值,就会从 Locals 窗口中消失。
为什么当我们在执行之前 buffer :='';
退出循环时,缓冲区显示的值会从 Locals 窗口中消失?就好像变量超出了范围。
PS 是否存在会导致长值包含在 Locals 窗口值单元格中的配置设置?
谢谢