2022年Oracle导入导出字符集乱码问 .pdf

上传人:C****o 文档编号:32107757 上传时间:2022-08-08 格式:PDF 页数:5 大小:38.31KB
返回 下载 相关 举报
2022年Oracle导入导出字符集乱码问 .pdf_第1页
第1页 / 共5页
2022年Oracle导入导出字符集乱码问 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年Oracle导入导出字符集乱码问 .pdf》由会员分享,可在线阅读,更多相关《2022年Oracle导入导出字符集乱码问 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Oracle 导入导出字符集乱码问题导出/ 导入与字符集进行数据的导入导出时,我们要注意关于字符集的问题。在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集, 导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。我们首先需要查看这四个字符集参数。查看数据库的字符集的信息:SQL select * from nls_database_parameters; PARAMETER VALUE - - NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA N

2、LS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET ZHS16GBK NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

3、 - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_NCHAR_CHARACTERSET ZHS16GBK NLS_RDBMS_VERSION 8.1.7.4.1 NLS_CHARACTERSET:ZHS16GBK 是当前数据库的字符集。我的 windows oracle编码为:NLS_NCHAR_CHARACTER

4、SET AL16UTF16 NLS_CHARACTERSET ZHS16GBK 我们再来查看客户端的字符集信息:客户端字符集的参数NLS_LANG=_. language:指定 oracle消息使用的语言,日期中日和月的显示。Territory:指定货币和数字的格式,地区和计算星期及日期的习惯。Characterset :控制客户端应用程序使用的字符集。通常设置或等于客户端的代码页。或者对于unicode 应用设为 UTF8 。在 windows 中,查询和修改 NLS_LANG 可在注册表中进行:HKEY_LOCAL_MACHINESOFTWAREOracleHOMExx xx 指存在多个

5、Oracle_HOME 时的系统编号。我这里的 windows 默认为 : windows Client: NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 在 Linux redhat5中:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - oracleucit $ cd 注意: cd 后是空格没有任何内容oracleucit $ vi .bash_profile 加上:export NLS_L

6、ANG=Simplified Chinese_China.ZHS16GBK 注意:四个端的参数编码要一致然后使用: env|grep NLS_LANG看正确没有在 unix 中:$ env|grep NLS_LANG NLS_LANG=simplified chinese_china.ZHS16GBK 修改可用:$ export NLS_LANG=AMERICAN_AMERICA.UTF8 通常在导出时最好把客户端字符集设置得和数据库端相同。当进行数据导入时,主要有以下两种情况:(1) 源数据库和目标数据库具有相同的字符集设置。这时,只需设置导出和导入端的客户端NLS_LANG 等于数据库字符

7、集即可。(2) 源数据库和目标数据库字符集不同。先将导出端客户端的NLS_LANG 设置成和导出端的数据库字符集一致,导出数据,然后将导入端客户端的NLS_LANG 设置成和导出端一致,导入数据,这样转换只发生在数据库端,而且只发生一次。这种情况下,只有当导入端数据库字符集为导出端数据库字符集的严格超集时,数据才能完全导成功,否则,可能会有数据不一致或乱码出现。不同版本的 EXP/IMP问题一般来说,从低版本导入到高版本问题不大,麻烦的是将高版本的数据导入到低版本中, 在 Oracle9i之前,不同版本 Oracle 之间的 EXP/IMP可以通过下面的方法来解决:名师资料总结 - - -精品

8、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 1、在高版本数据库上运行底版本的catexp.sql;2、使用低版本的 EXP来导出高版本的数据;3、使用低版本的 IMP将数据库导入到低版本数据库中;4、在高版本数据库上重新运行高版本的catexp.sql脚本。但在 9i 中,上面的方法并不能解决问题。如果直接使用低版本EXP/IMP会出现如下错误:EXP-00008: orACLE error %lu encountered orA-00904: inv

9、alid column name 这已经是一个公布的BUG , 需要等到 Oracle10.0 才能解决,BUG 号为 2261722,你可以到 METALINK 上去查看有关此BUG 的详细信息。BUG 归 BUG ,我们的工作还是要做, 在没有 Oracle 的支持之前, 我们就自己解决。在 Oracle9i中执行下面的 SQL重建 exu81rls 视图即可。Create or REPLACE view exu81rls (objown,objnam,policy,polown,polsch,polfun,stmts,chkopt,enabled,spolicy) AS select u

10、.name, o.name, r.pname, r.pfschma, r.ppname, r.pfname, decode(bitand(r.stmt_type,1), 0, Select,) | decode(bitand(r.stmt_type,2), 0, Insert,) | decode(bitand(r.stmt_type,4), 0, Update,) | decode(bitand(r.stmt_type,8), 0, Delete,), r.check_opt, r.enable_flag, DECODE(BITAND(r.stmt_type, 16), 0, 0, 1) f

11、rom user$ u, obj$ o, rls$ r whereu.user# = o.owner# and r.obj# = o.obj# 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - and (uid = 0 or uid = o.owner# or exists ( select * from session_roles where role=Select_CATALOG_ROLE) ) / grant select on sys.exu81rls to public; / 可以跨版本的使用EXP/IMP ,但必须正确地使用EXP和 IMP的版本:1、总是使用 IMP的版本匹配数据库的版本, 如:要导入到 817中,使用 817的 IMP工具。2、总是使用 EXP的版本匹配两个数据库中最低的版本,如:从9201 往 817中导入,则使用 817 版本的 EXP工具。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁