Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

2

主题
1#
发表于 2013-1-9 16:41:00 | 查看: 18564| 回复: 3
前几天有个测试库的存储被撤了,导致开发人员连不了数据库,重新挂载之后,开发和我说查询某些表的时候发现有问题:
SQL>select * from grt_fp;

ORA-29275: partial multibyte character

做了一些小测试之后发现主要的错误是在有中文的字段,其它字段可正常显示
在网上搜索了一下,大概的原因就是有被截断的中文字符的原因.

之后又做了一些测试:
SQL>select length(description) Len from grt_fp where code=51120;

Len
--------------------
                     15
SQL>select length(description) Len,dump(description) Dump from grt_fp where code=51120;

Len
---------------------
                      15
Dump
-----------------------------------------------------------------------------------------
Typ=1 Len=18: 119,121,83,80,52,52,48,48,49,48,48,195,232,215,214

SQL>select description from grt_fp where code=51120;

DESCRIPTION
-----------------------------------------
spSP01010101描述字

从上面可以看出,正常列中存储的长度应该是18,而在查询时长度却只有15
于是感觉应该是里面有非法字符的原因,于是做了以下操作
SQL>update xxx set description=TRIM(description) where code=51120;

1 rows updated.

这时用Secure CRT可以查询不报错,但用plsqldeveloper查询时仍然报错.
这个有没有什么方法可以彻底解决 ?
2#
发表于 2013-1-9 21:03:32
在plsqldeveoper中查下下面的SQL:

SELECT Parameter, Value FROM NLS_SESSION_PARAMETERS  ORDER BY 1
/

回复 只看该作者 道具 举报

3#
发表于 2013-1-14 17:52:09
Maclean Liu(刘相兵 发表于 2013-1-9 21:03
在plsqldeveoper中查下下面的SQL:

SELECT Parameter, Value FROM NLS_SESSION_PARAMETERS  ORDER BY 1

这个查完了主要看哪个参数?
下面是查询结果的截屏..

1.jpg (90.63 KB, 下载次数: 412)

查询结果

查询结果

回复 只看该作者 道具 举报

4#
发表于 2013-9-9 14:17:37
这个问题后面解决了没?

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2025-1-4 07:23 , Processed in 0.051721 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569