如何处理错误ORA-29275

如何处理错误ORA-29275:部分多字节字符?

问题描述
在运行查询SELECT * FROM V$SESSION 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。
解决方案
经过一次增加显示一列的方式查询,我发现问题出在ACTION列上,ACTION的结构是VARCHAR2(32),并不是每行该列都会有问题,而是部分行有问题,有问题的行的特征是,包含汉字,且汉字存入的时候被截断了,比如有行该列的值就是” FRM:HAND_ZW:HELS_客户化开发”,总共占了字节17+3*5=32个字节,可是文字看起来还没有结束,被截断了,碰到这样的列就会出现错误,因为这个是动态视图,所以无法查出源码的,不好解决。我后来在尝试解决的过程中偶然发现了三种方法可以解决,如下:
select TO_MULTI_BYTE(ACTION)  from v$session --这种文字显示太丑陋了 
select TO_SINGLE_BYTE(ACTION)  from v$session  
select TO_NCHAR(ACTION)  from v$session --个人觉得这种最好吧

猜你喜欢

转载自blog.csdn.net/aoc212/article/details/38020871