oracle数据库字符集修改的方法

上传人:xiao****1972 文档编号:84085377 上传时间:2019-03-02 格式:DOC 页数:4 大小:27.30KB
返回 下载 相关 举报
oracle数据库字符集修改的方法_第1页
第1页 / 共4页
oracle数据库字符集修改的方法_第2页
第2页 / 共4页
oracle数据库字符集修改的方法_第3页
第3页 / 共4页
oracle数据库字符集修改的方法_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《oracle数据库字符集修改的方法》由会员分享,可在线阅读,更多相关《oracle数据库字符集修改的方法(4页珍藏版)》请在金锄头文库上搜索。

1、1 ORACLE 数数据据库库字字符符集集修修改改的的方方法法 ORACLE 数据库有国家字符集(national character set)与数据库字符集(database character set)之分。两者都是在创建数据库时需要设置的。国家字符集主要是用于 NCHAR、NVARCHAR、NCLOB 类型的字段数据,而数据库字符集应用于: CHAR、VARCHAR、CLOB、LONG 类型的字段数据;表名、列名、PL/SQL 中的变 量名;输入及保存在数据库的 SQL 和 PL/SQL 的源码。 具体分析:具体分析: 字符集修改主要有两种方法: 方法一:通过逻辑备份导入导出的方法实现

2、方法二:通过 alter database set 修改 以上两种两方法各有优劣,下面我们通过各自实现的方法来实现字符集的转换,来说 明各自特点。例:把当前字符集 ZHS16GBK 改变成 UTF8 在字符集转换过程中经常会出字符长度规则不一样,这样会引起数据无法导入或者出 现乱码。我们可以通过 ORACLE 提供的工具检查及根据建议修改。 在 SYS 用户执行?/rdbms/admin/csminst.sql 脚本后: $ csscan FULL=Y FROMCHAR=ZHS16GBK fromnchar=AL32UTF8 TOCHAR=UTF8 TONCHAR=UTF8 ARRAY=102

3、4000 LOG=charcheck CAPTURE=Y PROCESS=4; FROMCHAR:说明数据库 CHAR, VARCHAR2, LONG, CLOB 数据类型的实际字 符集,缺省使用数据库的字符集。 FROMNCHAR:说明数据库 NCHAR, NVARCHAR2, NCLOB 数据类型的实际国家 字符集,缺省使用数据库的国家字符集。 TOCHAR:指定需要转换的目标字符集。 TONCHAR:指定需要转换的目标国家字符集,如果未指定将不扫描 NCHAR, NVARCHAR2, NCLOB 数据类型的数据 。 执行完上述指令后,检查输出 charcheck.err 文件并根据建议修

4、改表段长度: User : SFEHR 2 Table : ATMP_DEPT Column: MEMO Type : VARCHAR2(100) Number of Exceptions : 10 Max Post Conversion Data Size: 130 ROWID Exception Type Size Cell Data(first 30 bytes) - - - - AAANhYAAMAAAAA0AAg exceed column size 102 此点部于 2006 年 7 月 1 日由清凉点部 AAANhYAAMAAAAA3ABD exceed column size

5、119 原来的容桂点部 06 年 7 月 1 日起,拆 AAANhYAAMAAAAA5AAb exceed column size 116 沙田点部归属原由 虎门分部直接管 AAANhYAAMAAAAA5ABF exceed column size 130 2004 年 04 月 01 日 开始正式合併入 85 AAANhYAAMAAAAA8AAn exceed column size 119 大岭山点部归属莞 城分部管理。06 AAANhYAAMAAAAAzAAh exceed column size 117 原 20060801 江干分 部的曙光点部划 AAANhYAAMAAAABEAAc

6、 exceed column size 118 车管组 2004 年 1 月 1 日成立.根据总 AAANhYAATAAAAAiAAk exceed column size 125 06 年 7 月 1 日原综 合中心拆分为综合 AAANhYAATAAAAAjAAO exceed column size 116 因 HR 专员人员变 动,新老人员交接 AAANhYAATAAAAAmAAI exceed column size 119 莫愁分部于 2007 年 元月 3 日从原秦 - - - - 例: Alter table ATMP_DEPT modify VARCHAR2(130); 方法一

7、实施步骤:方法一实施步骤: 准备环境:准备环境: 1.创建实例和数据库,字符集为 UTF8.UTF8 2.设置客户端字集为目前字符集 on unix this is: $ set NLS_LANG=AMERICAN_AMERICA.UTF8 $ export NLS_LANG 3 on windows this is: c:set NLS_LANG=AMERICAN_AMERICA.UTF8 执行过程执行过程 执行导出指令 Exp user/pwd file=/usr/oracle/backup.dmp log=/directory2/username_exp.log owner=user 3

8、.传到目标数据库 IMP 到目标数据 导入数据库结构 imp system/manager file=e:sfh.dmp log=e:imp.log full=y rows=n indexes=n 通过下面脚本禁用约束和触发器 select alter table from dba_constraints where owner = upper( select alter trigger |trigger_name| disable; from user_triggers 导入数据 Imp user/pwd file=rmandmp.data full=y ignore=y 方法二:实施步骤:

9、方法二:实施步骤: SQL 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 UTF8; ALTER DATABASE NATIONAL CHARACTER SET UTF8; # 使用 INTERNAL_USE 可以跳过检查,ALTER DATABASE character set INTERNAL_USE 1 总结:总结: 使用逻辑数据迁移的方式测试放在 HR 人事系统上,字符集修改后,前台应用正常, 没有受到的影响,转换试基本成功。使用系统级指令修改在某 UNIX 主机下的新数据 库中测试通过。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号