sqlplus和plsql执行wm_concat结果不一致

问题描述:

在oracle中执行了一条关于wm_concat()函数的SQL,但是执行的结果却不一致。

在plsql工具中查询到的结果可以显示理想的结果(注意:虽然查询的结果字段类型是clob类型)。

在sqlplus中显示的结果却被截取了(注意:截取了前80个字符)。

在navicat中可以展示理想的结果。

分析过程:

1、首先检查所查询的数据库、用户、SQL等是否是一致的,已经确认是一致的排除SQL脚本错误的情况。

2、那么猜测原因出现在使用的工具上,plsql或navicat应该是对结果的展示做了处理。

3、观察分析到sqlplus查询结果只展示了前80个字符,并且所展示的部分是正确的,它只是截取了字段。所以猜测在底层处理上sqlplus已经得到了理想的结果,只是展示部分有问题,而且每行都是只展示了前80字符也是印证了这点。

4、sqlplus中show long得到的结果80(LONG {80(默认值)|n} 为显示和拷贝LONG类型值的最大宽度的设置. 对于ORACLE7, n的最大值为2G字节;对于版本6,最大值为32767),所以应该是sqlplus显示字段截取了前80字符。

5、sqlplus中set long 3000 正确显示理想结果。set longchunksize 2000;set linesize 2000可以调整输出结果的样式更理想。

参考:

SQLPlus中LONG参数的含义:

关于LONG这个参数,官方文档解释最大是2,000,000,000 bytes,如果结果集的类型是 LONG, BLOB, BFILE, CLOB, NCLOB , XMLType这些类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值