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

 

36.1 问题描述

在运行查询SELECT * FROM V$SESSION(其他查询也有可能) 会出现ORA-29275:部分多字节字符的错误,这是什么原因开始我不得其解,网上也没有介绍什么好办法。

36.1 解决方案

经过一次增加显示一列的方式查询,我发现问题出在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 --个人觉得这种最好吧

你可能感兴趣的:(oracle)