生产环境的数据表用了 中文字段名。

在生产环境oracle表正常,新建开发环境时,报字符串超长。

原因是

生产oracle字符集是:NLS_CHARACTERSETZHS16GBK

开发oracle字符集是:NLS_CHARACTERSET AL16UTF16

开发oracle需要修改字符集和生产一致。

开发下:

select * from V$nls_Parameters;

cmd,sqlplus登录

system as dba

密码

通过 "alter database character set ZHS16GBK;" 方式修改,但并不总是有效。该命令在Oracle8时被引入Oracle,这个操作在本质上并不转换任何数据库字符,只是简单的更新数据库中所有跟字符集相关的信息。
查询字符集信息: "SQL> select name,value$ from props$ where name like '%NLS%';",结果有二十行。
修改步骤:
注意:转换字符集,数据库应该在RESTRICTED模式下进行. (使用DBA登录数据库)
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER SESSION SET SQL_TRACE=TRUE;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> ALTER DATABASE OPEN;
SQL> set linesize 120;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;

常见问题:
问题1:
SQL> ALTER DATABASE CHARACTER SET ZHS16CGB231280;
ALTER DATABASE CHARACTER SET ZHS16CGB231280
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
原因:
字符集超集问题,所谓超集是指:当前字符集中的每一个字符在新字符集中都可以表示,并使用同样的代码点,比如很多字符集都是US7ASCII的严格超集。如果不是超集,将获得以上错误。
解决方式:
SQL> alter database character set internal_use ZHS16GBK;
SQL> select * from v$nls_parameters;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
备注:
ALTER DATABASE CHARACTER SET操作的内部过程是完全相同的,也就是说INTERNAL_USE提供的帮助就是使Oracle数据库绕过了子集与超集的校验。该方法某些方面有用处,比如测试环境;应用于产品环境大家应该格外小心,除了你以外,没有人会为此带来的后果负责。

问题2:
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12721: operation cannot execute when other sessions are active
原因:
字符集超集问题。
解决方式:
SQL> alter database character set internal_use ZHS16GBK;
SQL> select * from v$nls_parameters;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

问题3:
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12716: Cannot ALTER DATABASE CHARACTER SET when CLOB data exists
原因:
数据库存在CLOB类型字段,那么就不允许对字符集进行转换
解决方式:
这时候,我们可以去查看alert.log日志文件,看CLOB字段存在于哪些表上:
内容如:
ALTER DATABASE CHARACTER SET ZHS16GBK
SYS.METASTYLESHEET (STYLESHEET) - CLOB populated
ORA-12716 signalled during: ALTER DATABASE CHARACTER SET ZHS16GBK...
对于用户表,可以先将该表导出,然后把该表删掉,等字符转换完毕后在导入。

-------------

更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html

oracle修改字符集相关推荐

  1. Oracle 修改字符集 为ZHS16GBK

    Oracle 修改字符集 为ZHS16GBK 相信很多人都会遇到安装oracle后字符集编码不一致而导致的各种问题,现在讲下如何修改字符集格式. 一.oracle server 端 字符集查询 sel ...

  2. oracle 如何修改字符集 update prop,ORACLE 修改字符集

    EXP遇到ORA-06552错误的解决( PLS-553: character set name is not recognized)2009-05-08 16:51有一个建好的数据,Oracle 9 ...

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

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

  4. 160505、oracle 修改字符集 修改为ZHS16GBK

    修改oracle字符集 方法/步骤 oracle数据库的字符集更改 A.oracle server 端 字符集查询 select userenv('language') from dual 其中NLS ...

  5. Oracle 修改字符集(AL32UTF8 转换成UTF8字符集)

    有的时候我们在迁移数据库的时候发现由于字符集的问题导致迁移不成功,比如之前做expdp/imdp迁移的时候 , 源库是UTF8字符集,目的库是AL32UTF8字符集,由于汉字在AL32UTF8 中占3 ...

  6. WIN10下 Oracle修改字符集

    查看字符集: select * from v$nls_parameters; 或者 select userenv('language') from dual; (常用字符集:AMERICAN_AMER ...

  7. oracle 修改字符集 修改为ZHS16GBK

    将数据库启动到RESTRICTED模式下做字符集更改: SQL> conn /as sysdba Connected. SQL> shutdown immediate; Database ...

  8. oracle查看和修改字符集,oracle字符集的查看和修改

    Oracle修改字符集 2.3oracle数据库的字符集更改 A.oracle server 端 字符集查询 select userenv('language') from dual 其中NLS_CH ...

  9. ORACLE-工作常用配置及命令记录-导入sql、unl文件、查看数据库状态、修改字符集等...

    博文说明[前言]: 本文将记录个人工作中常用的oracle配置命令及相关知识,在目前时间点[2017年5月16号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流 ...

最新文章

  1. 图.exe 已触发了一个断点。 出现了_学术简报︱基于保护综合重要度的最小断点集优选方法...
  2. 办公技巧:Excel日常高频使用技巧,赶快收藏吧!
  3. Azure DevOps 中 Dapr项目自动部署流程实践
  4. dabs是什么意思_cpdd是什么意思(网络语cpdd是什么梗啥意思)
  5. service nginx start启动nginx出现Failed to start nginx.service:unit not found
  6. html网页做一个打字小游戏,原生js实现的金山打字小游戏(实例代码详解)
  7. php混淆解密,关于php混淆加密解密详解
  8. 学校机房计算机类型,学校计算机机房的管理和维护建议原稿(备份存档)
  9. [安卓手机安装Apk ] 安卓手机通过数据线在电脑下载本地的Apk应用
  10. 互联网运营面试题_产品运营面试常见问题
  11. win10家庭版如何修改用户名对应的用户文件夹下的用户文件名字(中文该成英文字符)
  12. tips pycharm 配搭git
  13. 淘宝吱口令效果实现,获取系统剪贴板内容
  14. 个人对价值观的认识与感受
  15. 使用ListIterator 对List遍历时修改,删除
  16. 实现html页面的倒计时
  17. QQ出现大规模盗号,为什么会这样?就没有解决方法了吗?
  18. 空气质量指数c语言,基于STM32的小范围空气质量的监测与预报
  19. 精美底部营销通用型插件(客服+电话+微信)按钮
  20. springboot校园二手交易市场网站毕业设计-附源码071008

热门文章

  1. php判断url参数为空,PHP检查url链接是否已经有参数的简单示例
  2. mysql update多个表_mysql update 多表 (复制)
  3. junit4进行单元测试
  4. html input 上标,javascript – 文本类型的输入字段中的上标
  5. kernal tch 下载 天正_tch kernal.arx
  6. element 登录_Python selenium自动化测试框架入门实战--登录测试案例
  7. 计算机兴趣班记录,计算机兴趣班活动记录.doc
  8. LDAP命令介绍---import-ldif
  9. oracle控制文件
  10. 日常问题——初始化Hive仓库报错com.google.common.base.Preconditions.checkArgument