查看数据库当前数据集有两种方式:
      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'相关推荐

  1. oracle修改数据库字符集

    1.修改数据库字符集,如果登录的客户端与服务器不在同一服务器,则建议两边字符集保持一致. 查看客户端字符集: select * from v$nls_parameters NLS_LANGUAGE # ...

  2. c# 连接 oracle数据库字符集为us7ascii的问题,实验了好几个方案 成功了

    利用System.Data.OleDb.OdbcConnection类访问数据库. 连接字符串:"Provider=MSDAORA.1;Data Source=(DESCRIPTION =( ...

  3. oracle修改字符集_oracle修改数据库字符集

    1.查看数据库字符集 数据库服务器字符集: select* from nls_database_parameters: 其来源于props$,是表示数据库的字符集. 客户端字符集环境: select* ...

  4. db2 mysql 代码_db2 修改数据库字符集

    MySQL的字符集 一.字符集的查看 1.查看服务器支持的字符集: show character set;(show char set;show charset;) 查看服务器支持的字符集编码:sho ...

  5. mongoose 批量修改字段_记一次脚本批量修改数据库字符集所埋下的一个坑及解决思路...

    概述 前段时间参考网上教程用脚本批量修改了数据库的字符集,过了一天后业务反馈某个功能用不了,检查发现数据库字符类型的字段的默认值和说明全部为空,用实验测试了一下果然脚本存在一些bug,后续因此加班了一 ...

  6. oracle修改数据库国际字符集,Oracle修改数据库字符集

    1.(Window:)cmd下输入set ORACLE_SID=你想进入的数据库的那个sid (Linux:)切换到oracle用户:export  ORACLE_SID=你想进入的数据库的那个sid ...

  7. mysql修改数据库字符集,编码

    查看mysql数据库当前编码 mysql -uroot -pxxx use tigercity; show variables like 'character_set_database';或者 Mar ...

  8. oracle 10修改字符集,Oracle 10g修改数据库字符集

    查看当前字符集 引用 SQL> select * from nls_database_parameters where parameter like '%SET%'; PARAMETER     ...

  9. 10g中如何修改数据库字符集-2

    从上面的安装结果输出信息来看,下面的2条授权语句执行失败了, grant READ on directory log_file_dir to system grant READ on director ...

最新文章

  1. 【 HDU1043-经典BFS+康拓展开 八数码】 (待更)
  2. xp怎么删除计算机用户,谁了解xp系统如何删除工作组计算机
  3. 月薪10000在中国是什么水平?
  4. Linux内核同步方法(一)
  5. 今晚的比赛(2011.12.4)
  6. Java中Arrays类的两个方法:deepEquals和equals
  7. 初中级工程师是否应急于学习html5?
  8. Centos7系统中安装JDK、Tomcat、Mysql
  9. 最后7天!阿里云2020云内存数据库峰会现场参会报名中
  10. 中兴盒子ZTE-B860AV1.1T、AV2.1-通刷-线刷固件
  11. 计算机二级office学习之Excel操作题考点整理
  12. 面试题系列(三)-socket
  13. apache设置开机启动启动
  14. Ubuntu 安装中文字体
  15. 打怪游戏 勇者打恶龙1.6(1.7)
  16. 运维工程师主要是做什么的?和网络工程师有啥区别?
  17. 《RFID原理及应用》期末复习总结(6)
  18. Flink 使用Table Api 读取文件数据并写出到文件中
  19. 帝国 loginjs.php,帝国cms JS调用登陆模板制作教程
  20. 谷歌地图 替代_Google地图的替代品

热门文章

  1. ybt1359: 围成面积
  2. 天琊 V1.0(测试 1125版)
  3. 【经验总结】小白挖洞十天经验分享
  4. 社保交满15年就不用交了吗?常见重点问答请查收,千万别误解了~
  5. python画余弦曲线_使用python画圆以及正弦余弦曲线
  6. CPU处理器Intel Xeon Skylake 6148(2.4 GHz)性能评测
  7. 淘宝关键词搜索商品接口分析商品价格走势(商品列表接口,商品销量接口,商品价格接口,分类ID采集商品数据接口)接口代码对接教程
  8. Web前端之JavaScript基础
  9. c语言四字节对齐,C语言字节对齐详解
  10. 解决Failing package is:mysql-community-icu-data-files-8.0.29-1.el7.x86_64 GPG Keys are configured as..