修改数据库字符集为'us7ascii'
查看数据库当前数据集有两种方式:
a).select name,value$ from props$ where name like '%NLS_CHARACTERSET%',
b).select userenv('language') from dual;
1.常规方案修改数据库字符集
1).sys登陆数据库:conn / as sysdba;
2).关闭数据库:shutdown immediate;
3).以mount方式开启数据库:startup mount;
4).限制其它用户连接数据库使用资源: alter system enable restricted session;
5).查看系统当前的进程(最大连接数):show parameter processes;记住job_queue_processes参数的当前值,后面需要修改回来。
6).杀掉CJQ0及相应job进程: alter system set job_queue_processes=0;
7).修改队列监视进程参数alter system set aq_tm_processes=0;
8).更改数据库为open方式:alter database open;
9).更改字符集:alter database character set us7ascii;
a).如果当前数据库的字符集是系统字符集us7asci的超集,更改不会出问题;如果不是,将会提示:
ORA-12712: 新字符集必须为旧字符集的超集
b).如果数据库数据有CLOB类型,系统将会提示:
ORA-12716: Cannot ALTER DATABASE CHARACTER SET when CLOB data exists
2. 针对以上的错误a)的解决方案:使用INTERNAL_USE跳过超集检测
ALTER DATABASE character set INTERNAL_USE us7ascii;
3. 针对以上的错误b)的解决方案:使用internal_convert转换含有CLOB字段的表
1).截断表truncate table Metastylesheet;
2).alter database character set internal_convert zhs16gbk;-- ORACLE会自动转换含有CLOB
3).因为前面清空了SYS.METASTYLESHEET表,需要重新创建
9.2通过运行catmet.sql脚本来重建;@?/rdbms/admin/catmet.sql
10g后通过运行catmeta.sql脚本来重建:@?/rdbms/admin/catmeta.sql
(注意这个地方有待商榷,不确定,最好不要使用这种方法修改)
4.完成方案a)和b)后再做如下步骤:
1).查看当前字符集,确认是否正确修改select userenv('language') from dual;
2).解除限制:
alter system disable restricted session;
alter system set job_queue_processes=10;--修改回开始记录的原始值
3).关闭数据库再打开;
4).简单测试下insert int t values('测试乱码');看还有乱码否
修改数据库字符集为'us7ascii'相关推荐
- oracle修改数据库字符集
1.修改数据库字符集,如果登录的客户端与服务器不在同一服务器,则建议两边字符集保持一致. 查看客户端字符集: select * from v$nls_parameters NLS_LANGUAGE # ...
- c# 连接 oracle数据库字符集为us7ascii的问题,实验了好几个方案 成功了
利用System.Data.OleDb.OdbcConnection类访问数据库. 连接字符串:"Provider=MSDAORA.1;Data Source=(DESCRIPTION =( ...
- oracle修改字符集_oracle修改数据库字符集
1.查看数据库字符集 数据库服务器字符集: select* from nls_database_parameters: 其来源于props$,是表示数据库的字符集. 客户端字符集环境: select* ...
- db2 mysql 代码_db2 修改数据库字符集
MySQL的字符集 一.字符集的查看 1.查看服务器支持的字符集: show character set;(show char set;show charset;) 查看服务器支持的字符集编码:sho ...
- mongoose 批量修改字段_记一次脚本批量修改数据库字符集所埋下的一个坑及解决思路...
概述 前段时间参考网上教程用脚本批量修改了数据库的字符集,过了一天后业务反馈某个功能用不了,检查发现数据库字符类型的字段的默认值和说明全部为空,用实验测试了一下果然脚本存在一些bug,后续因此加班了一 ...
- oracle修改数据库国际字符集,Oracle修改数据库字符集
1.(Window:)cmd下输入set ORACLE_SID=你想进入的数据库的那个sid (Linux:)切换到oracle用户:export ORACLE_SID=你想进入的数据库的那个sid ...
- mysql修改数据库字符集,编码
查看mysql数据库当前编码 mysql -uroot -pxxx use tigercity; show variables like 'character_set_database';或者 Mar ...
- oracle 10修改字符集,Oracle 10g修改数据库字符集
查看当前字符集 引用 SQL> select * from nls_database_parameters where parameter like '%SET%'; PARAMETER ...
- 10g中如何修改数据库字符集-2
从上面的安装结果输出信息来看,下面的2条授权语句执行失败了, grant READ on directory log_file_dir to system grant READ on director ...
最新文章
- 【 HDU1043-经典BFS+康拓展开 八数码】 (待更)
- xp怎么删除计算机用户,谁了解xp系统如何删除工作组计算机
- 月薪10000在中国是什么水平?
- Linux内核同步方法(一)
- 今晚的比赛(2011.12.4)
- Java中Arrays类的两个方法:deepEquals和equals
- 初中级工程师是否应急于学习html5?
- Centos7系统中安装JDK、Tomcat、Mysql
- 最后7天!阿里云2020云内存数据库峰会现场参会报名中
- 中兴盒子ZTE-B860AV1.1T、AV2.1-通刷-线刷固件
- 计算机二级office学习之Excel操作题考点整理
- 面试题系列(三)-socket
- apache设置开机启动启动
- Ubuntu 安装中文字体
- 打怪游戏 勇者打恶龙1.6(1.7)
- 运维工程师主要是做什么的?和网络工程师有啥区别?
- 《RFID原理及应用》期末复习总结(6)
- Flink 使用Table Api 读取文件数据并写出到文件中
- 帝国 loginjs.php,帝国cms JS调用登陆模板制作教程
- 谷歌地图 替代_Google地图的替代品
热门文章
- ybt1359: 围成面积
- 天琊 V1.0(测试 1125版)
- 【经验总结】小白挖洞十天经验分享
- 社保交满15年就不用交了吗?常见重点问答请查收,千万别误解了~
- python画余弦曲线_使用python画圆以及正弦余弦曲线
- CPU处理器Intel Xeon Skylake 6148(2.4 GHz)性能评测
- 淘宝关键词搜索商品接口分析商品价格走势(商品列表接口,商品销量接口,商品价格接口,分类ID采集商品数据接口)接口代码对接教程
- Web前端之JavaScript基础
- c语言四字节对齐,C语言字节对齐详解
- 解决Failing package is:mysql-community-icu-data-files-8.0.29-1.el7.x86_64 GPG Keys are configured as..