盐城网站建设建站,建设部网站进不去,湖北省城乡和住房建设厅官方网站,申请注册一个自媒体平台账号生产环境的数据表用了 中文字段名。
在生产环境oracle表正常#xff0c;新建开发环境时#xff0c;报字符串超长。
原因是
生产oracle字符集是#xff1a;NLS_CHARACTERSETZHS16GBK
开发oracle字符集是#xff1a;NLS_CHARACTERSET AL16UTF16 开发oracle需要修改字符集…生产环境的数据表用了 中文字段名。
在生产环境oracle表正常新建开发环境时报字符串超长。
原因是
生产oracle字符集是NLS_CHARACTERSETZHS16GBK
开发oracle字符集是NLS_CHARACTERSET AL16UTF16 开发oracle需要修改字符集和生产一致。 开发下
select * from V$nls_Parameters; cmdsqlplus登录
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_TRACETRUE; SQL ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL ALTER SYSTEM SET JOB_QUEUE_PROCESSES0; SQL ALTER SYSTEM SET AQ_TM_PROCESSES0; 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... 对于用户表可以先将该表导出然后把该表删掉等字符转换完毕后在导入。 ------------- 更多的JavaAngularAndroid大数据J2EEPython数据库LinuxJava架构师 http://www.cnblogs.com/zengmiaogen/p/7083694.html