我正在使用PL / SQL Developer 9.0.6,在Oracle 11g数据库上工作。
我在一个包中有一个过程,它创建了一个与execute immediate
一起运行的动态SQL。变量vSQL
声明为varchar2(4000)
。我的程序正确构建并运行vSQL
,并通过ref cursor
参数返回out
。
但是,在调试我的过程时,出现了意外情况:我在vSQL
上设置了一个监视,当长度vSQL
达到1000或更高时,监视窗口中的值从< em>内容 vSQL
到 literal '(长值)',我无法再查看vSQL
的内容。
为什么会这样?有没有什么办法可以让我vSQL
来调试我的程序时仍能查看它?
答案 0 :(得分:2)
正如其他人所指出的那样,PL / SQL Developer无法在调试器中显示4000个字符。这可能是Oracle软件包DBMS_DEBUG的限制。
作为一种解决方法,您可以使用Oracle SQL Developer,它使用不同的调试器DBMS_DEBUG_JDWP。通常,PL / SQL Developer比Oracle SQL Developer好一千倍。但是,如果您需要调试大型字符串或集合,那么Oracle SQL Developer可以更好地工作。
答案 1 :(得分:1)
出于调试目的,你可以拥有每个元素长度为1000的varchar2数组,最多可以有4个元素,这样就可以解决超过1000个限制的问题,你仍然可以监控varchar2(4000)&#39 ; s值