转载:http://blog.sina.com.cn/s/blog_c58d04bf0101lbka.html
在日常工作中,我们经常会遇到字符集的问题。Export 和 Import 是一对读写Oracle数据的工具。Export 将 Oracle 数据库中的数据输出到操作系统文件中, Import 把这些文件中的数据读到Oracle 数据库中,由于使用exp/imp进行数据迁移时,数据从源数据库到目标数据库的过程中有四个环节涉及到字符集,如果这四个环节的字符集不一致,将会发生字符集转换。
四个字符集是:
(1)源数据库字符集
(2)Export过程中用户会话字符集(通过NLS_LANG设定)
(3)Import过程中用户会话字符集(通过NLS_LANG设定)
(4)目标数据库字符集
一、导出的转换过程
在Export过程中,如果源数据库字符集与Export用户会话字符集不一致,会发生字符集转换,并在导出文件的头部几个字节中存储Export用户会话字符集的ID号。在这个转换过程中可能发生数据的丢失。
例:如果源数据库使用ZHS16GBK,而Export用户会话字符集使用US7ASCII,由于ZHS16GBK是16位字符集,而US7ASCII是7位字符集,这个转换过程中,中文字符在US7ASCII中不能够找到对等的字符,所以所有中文字符都会丢失而变成“?? ”形式,这样转换后生成的Dmp文件已经发生了数据丢失。
因此,如果想正确导出源数据库数据,则Export过程中用户会话字符集应等于源数据库字符集或是源数据库字符集的超集。
二、导入的转换过程
(1)确定导出数据库字符集环境
通过读取导出文件头,可以获得导出文件的字符集设置
(2)确定导入session的字符集,即导入Session使用的NLS_LANG环境变量
(3)IMP读取导出文件
读取导出文件字符集ID,和导入进程的NLS_LANG进行比较
(4)如果导出文件字符集和导入Session字符集相同,那么在这一步骤内就不需要转换,如果不同,就需要把数据转换为导入Session使用的字符集。可以看出,导入数据到数据库过程中发生两次字符集转换。
第一次:导入文件字符集与导入Session使用的字符集之间的转换,如果这个转换过程不能正确完成,Import向目标数据库的导入过程也就不能完成。
第二次:导入Session字符集与数据库字符集之间的转换。
在做数据导入的时候,需要这三个字符集都一致:一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集
相关推荐
本文将深入探讨Oracle数据库的导入导出命令,特别是如何更改字符集的相关知识。 首先,Oracle数据库提供了两种主要的数据导入导出工具:`expdp`(Export Data Pump)和`impdp`(Import Data Pump)。这两个实用程序...
最后,"Oracle字符集(5).txt"可能涉及数据导入导出与字符集的关联,如使用SQL*Loader、EXPDP/IMPDP时的字符集设置,以及如何确保导出的数据在导入到不同字符集的环境中时仍能正确显示。 总的来说,这个Oracle字符...
客户端的字符集应尽可能与数据库端保持一致,否则可能导致字符显示乱码或数据导入导出问题。 解决跨字符集的导出/导入问题,可以利用二进制编辑工具,如uedit32。通过查看dmp文件的前几个字节,可以确定原始字符集...
在ASP中处理Excel数据导入导出是一项常见的需求,特别是在数据处理和报表生成的场景下。这个"asp将EXCEL导入导出数据库原程序"提供了一个解决方案,能够方便地将Excel中的数据存入MSSQL数据库,同时也能将数据库中的...
本篇将深入探讨Oracle字符集的查看、修改、导入导出以及转换原理。 一、Oracle字符集的查看 在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS ...
- 它支持数据转换,例如,可以将导出的字符集与目标数据库的字符集不匹配的数据进行转换。 - 通过使用数据泵的`REMAP_SCHEMA`选项,可以在导入时重定向数据到不同的目标模式,这对于测试环境非常有用。 - impdp还...
### Oracle 数据库中不同字符集DMP文件的导入方法与技巧 #### 1. 引言 在Oracle数据库管理过程中,经常会遇到需要将一个数据库的备份文件(通常为.dmp格式)导入到另一个数据库的情况。这涉及到源数据库与目标...
当源数据库与目标数据库的字符集不同时,可以通过此参数来指定字符集转换。例如: ```sql EXPORT TO filename DEL MODIFIED BY CODEPAGE = 1386 SELECT ... FROM ... WHERE ... ``` 3. **时间戳格式化**: - `...
在进行数据库管理时,MySQL提供了丰富的命令行工具用于数据库的导入导出操作。对于这些操作,尤其需要掌握的是mysqldump命令和MySQL的Source命令的使用方法。 首先,mysqldump是MySQL用于备份数据库的命令行工具。...
ODBC 数据源配置与数据导入导出 ODBC(Open Database Connectivity)是一种规范,用于提供统一的访问多种数据库管理系统的接口。ODBC 数据源配置是指配置 ODBC 连接数据库的过程,包括配置 Oracle 数据源和 SQL ...
8. **安全性与合规性**:在进行数据导入导出时,必须遵守数据保护法规,确保数据的安全性和隐私。这可能涉及数据加密、权限控制和审计日志记录。 总之,利用Java实现不同数据库间的导入导出是一个复杂但可实现的...
总之,正确设置字符集是解决MySQL命令行导入导出中文乱码的关键。在导出和导入过程中,都要确保字符集的匹配,以确保数据的完整性和准确性。同时,了解并掌握各种导入导出方法,能够提高数据库管理和维护的效率。在...
本文将深入探讨如何在Java中进行XML文件的导入与导出。 首先,理解XML的基本结构至关重要。XML文件由一系列的元素构成,每个元素都有可能包含子元素或者文本内容。元素通过开始标签 `<tag>` 和结束标签 `</tag>` ...
2. **数据导入导出** - 在导入包含GBK字符的数据时,需确保数据源的编码与DB2的GBK字符集匹配,否则可能产生乱码。使用`LOAD`或`IMPORT`命令时,需要设置正确的字符集选项。 - 导出数据时,同样要注意设置合适的...
在某些情况下,由于字符集不匹配,可能会导致数据导入导出时出现问题,比如提到的.dmp文件无法正常导入到其他数据库。针对这种情况,我们可以按照以下步骤来修改Oracle 11g数据库的字符集,使其更改为ZHS16GBK。 ...
Oracle 导入导出 DMP 文件详解 Oracle 是一种广泛使用的关系型数据库管理系统,导入导出 DMP 文件是 Oracle 数据库管理员和开发者经常遇到的一个重要任务。下面将详细介绍 Oracle 导入导出 DMP 文件的步骤和相关...
- **字符集转换**:在不同字符集的数据库间进行数据迁移时,需注意字符集的匹配与转换。 7. **安全性与权限** - 导入导出过程中应确保用户有足够的权限访问涉及的对象。 - 导出的文件应妥善保管,避免敏感数据...
在VB中实现Oracle数据库的导入导出,主要涉及到以下几个关键知识点: 1. **Oracle连接组件**:首先,我们需要使用Oracle的客户端组件,如ODBC(Open Database Connectivity)或ODP.NET(Oracle Data Provider for ...
在IT领域,尤其是在数据库管理与操作中,Oracle数据库在企业级应用中占据着举足轻重的地位。在Linux环境下进行...然而,在实际操作中,还需要注意权限管理、字符集匹配、资源限制等问题,确保数据完整性和一致性。
**问题描述**:在不同的数据库之间导入导出数据时,可能会遇到字符集不匹配的问题,导致数据损坏或乱码。 **解决方法**: - **设置字符集**:在执行 `expdp` 和 `impdp` 命令时,可以通过 `character_set` 参数...