oracle查看字符集 修改字符集
浏览:2840次 出处信息
USERENV('LANGUAGE')
-----------------------------------------------------------
SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1
从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。
1、查看字符集
数据库服务器字符集 select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
客户端字符集环境 select * from nls_instance_parameters,其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表
会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。
客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件
字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。
2、修改数据库的字从字符集
SQL> ALTER DATABASE NATIONAL CHARACTER SET JAPANSE_JAPAN JA16SJIS;
ALTER DATABASE NATIONAL CHARACTER SET JAPANSE_JAPAN JA16SJIS
*
第 1 行出现错误:
ORA-00933: SQL command not properly ended
ALTER DATABASE NATIONAL CHARACTER SET 'JAPANSE_JAPAN JA16SJIS';
SQL> ALTER DATABASE NATIONAL CHARACTER SET 'JAPANSE_JAPAN JA16SJIS';
ALTER DATABASE NATIONAL CHARACTER SET 'JAPANSE_JAPAN JA16SJIS'
*
第 1 行出现错误:
ORA-24329: invalid character set identifier
SQL> select * from V$NLS_VALID_VALUES where parameter ='CHARACTERSET';
PARAMETER VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
CHARACTERSET AR8MUSSAD768
CHARACTERSET AR8ADOS710
CHARACTERSET AR8ADOS720
CHARACTERSET AR8APTEC715
CHARACTERSET AR8MSWIN1256
CHARACTERSET AR8MSAWIN
CHARACTERSET AR8NAFITHA721
CHARACTERSET AR8SAKHR706
CHARACTERSET AR8ARABICMAC
CHARACTERSET AR8ARABICMACS
CHARACTERSET AR8ARABICMACT
CHARACTERSET LA8ISO6937
CHARACTERSET WE8DECTST
CHARACTERSET JA16VMS
CHARACTERSET JA16EUC
CHARACTERSET JA16EUCYEN
CHARACTERSET JA16SJIS
CHARACTERSET JA16DBCS
CHARACTERSET JA16SJISYEN
CHARACTERSET JA16EBCDIC930
CHARACTERSET JA16MACSJIS
ALTER DATABASE NATIONAL CHARACTER SET 'JA16SJIS';
SQL文修改编码方法:
shutdown immediate;
startup mount;
alter system enable restricted session;
alter system set JOB_QUEUE_PROCESSES=0;
alter system set AQ_TM_PROCESSES=0;
alter database open;
alter database character set internal_use GB2312;
shutdown immediate;
startup;
我没有测试成功,唉!重安装库吧……
建议继续学习:
- ORACEL RAC 字符集 (阅读:4627)
- linux下vim的编译以及终端乱码的最终解决方案 (阅读:3518)
- 区分一个包含汉字的字符串是 UTF-8 还是 GBK (阅读:3297)
- 如何在MYSQL5.5只支出utf8环境下正常使用GBK网站 (阅读:2853)
- mysql latin1转utf8 的两种方法 (阅读:2472)
- mysql字符集和校验规则概念小介 (阅读:2284)
- mysql字符集与校验规则的设置 (阅读:2269)
- java中文乱码解决之道(一)—–认识字符集 (阅读:2393)
- mysql连接通道中的字符集和校验规则 (阅读:2189)
- 关于MySQL的字符集 (阅读:2116)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:Oracle11g中的result cache
后一篇:SSH下连接Oracle的方法 >>
文章信息
- 作者:zhoz 来源: Everyday NetLog
- 标签: 字符集
- 发布时间:2010-06-03 13:32:21
建议继续学习
近3天十大热文
- [55] Oracle MTS模式下 进程地址与会话信
- [55] IOS安全–浅谈关于IOS加固的几种方法
- [54] 如何拿下简短的域名
- [53] 图书馆的世界纪录
- [53] android 开发入门
- [52] Go Reflect 性能
- [49] 【社会化设计】自我(self)部分――欢迎区
- [49] 读书笔记-壹百度:百度十年千倍的29条法则
- [38] 程序员技术练级攻略
- [32] 视觉调整-设计师 vs. 逻辑