2013-02-12 117 views
2

我正在使用PL/SQL Developer 9.0.6,使用Oracle 11g数据库。为什么我的VARCHAR2在我的PL/SQL中转换为LONG?

我在创建与execute immediate运行一些动态SQL包的过程。变量vSQL被声明为varchar2(4000)。我的方法构建和运行正常vSQL,并通过out放慢参数返回ref cursor

然而,在调试时我的过程中,意想不到的事情发生了:我把手表上vSQL,并且当长度vSQL到达1000以上,从内容vSQL监视窗口更改值字面值'(Long Value)',我不能再查看vSQL的内容。

为什么会发生这种情况?有没有什么办法可以投入vSQL,以便在调试我的程序时仍可以查看它?

+3

有一个Oracle'LONG'和显示文本“龙价值”的客户端之间的差异。有一些论坛帖子显示这是'Oracle调试器'的问题 - 例如[这里](http://forums.allroundautomations.com/ubb/ubbthreads.php?ubb=showflat&Number=13779&PHPSESSID=2e3c1b028a66500ae8a1730abc88b993),[这里](http://forums.allroundautomations.com/ubb/ubbthreads.php?ubb = showflat&Number = 27694&PHPSESSID = 2e3c1b028a66500ae8a1730abc88b993)and [here](http://forums.allroundautomations.com/ubb/ubbthreads.php?ubb=showflat&Number=23444&PHPSESSID=2e3c1b028a66500ae8a1730abc88b993)。 – 2013-02-12 19:05:10

回答

2

正如其他人所指出的那样,PL/SQL开发人员无法显示在调试器4000个字符。这可能是Oracle包DBMS_DEBUG的限制。

作为一种变通方法,您可以使用Oracle SQL Developer中,使用不同的调试器,DBMS_DEBUG_JDWP。一般来说,PL/SQL Developer比Oracle SQL Developer要好上千倍。但是,如果您需要调试大型字符串或集合,那么Oracle SQL Developer的效果会更好。

1

为了调试目的,您可以使用每个元素长度为1000,最大长度为4个元素的varchar2数组,以便它可以解决调试超过1000个字符限制的问题,并且仍然可以监视varchar2(4000)的s值

相关问题