`
yakecjh
  • 浏览: 3461 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Oracle导出/导入与字符集

阅读更多
进行数据的导入导出时,我们要注意关于字符集的问题。在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集,导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。
我们首先需要查看这四个字符集参数。
查看数据库的字符集的信息:
SQL> select * from nls_database_parameters;

PARAMETER                     VALUE
------------------------------ --------------------------------------------------------------------------------
NLS_LANGUAGE                  AMERICAN
NLS_TERRITORY                   AMERICA
NLS_CURRENCY                  $
NLS_ISO_CURRENCY              AMERICA
NLS_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
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是当前数据库的字符集。

我们再来查看客户端的字符集信息:
客户端字符集的参数NLS_LANG=_<territory >.
language:指定oracle消息使用的语言,日期中日和月的显示。
Territory:指定货币和数字的格式,地区和计算星期及日期的习惯。
Characterset:控制客户端应用程序使用的字符集。通常设置或等于客户端的代码页。
           或者对于unicode应用设为UTF8。
在windows中,查询和修改NLS_LANG可在注册表中进行:
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOMExx\
xx指存在多个Oracle_HOME时的系统编号。
在unix中:
$ env|grep NLS_LANG
NLS_LANG=simplified chinese_china.ZHS16GBK
修改可用:
$ export NLS_LANG=AMERICAN_AMERICA.UTF8
通常在导出时最好把客户端字符集设置得和数据库端相同。当进行数据导入时,主要有以下两种情况:
(1)   源数据库和目标数据库具有相同的字符集设置。
这时,只需设置导出和导入端的客户端NLS_LANG等于数据库字符集即可。
(2)   源数据库和目标数据库字符集不同。
先将导出端客户端的NLS_LANG设置成和导出端的数据库字符集一致,导出数据,然后将导入端客户端的NLS_LANG设置成和导出端一致,导入数据,这样转换只发生在数据库端,而且只发生一次。
这种情况下,只有当导入端数据库字符集为导出端数据库字符集的严格超集时,数据才能完全导成功,否则,可能会有数据不一致或乱码出现。
分享到:
评论

相关推荐

    导出/导入与字符集之间问题的解决

    客户端的字符集应尽可能与数据库端保持一致,否则可能导致字符显示乱码或数据导入导出问题。 解决跨字符集的导出/导入问题,可以利用二进制编辑工具,如uedit32。通过查看dmp文件的前几个字节,可以确定原始字符集...

    oracle数据库导入导出命令! 更改字符集

    本文将深入探讨Oracle数据库的导入导出命令,特别是如何更改字符集的相关知识。 首先,Oracle数据库提供了两种主要的数据导入导出工具:`expdp`(Export Data Pump)和`impdp`(Import Data Pump)。这两个实用程序...

    Oracle 字符集详解

    本篇将深入探讨Oracle字符集的查看、修改、导入导出以及转换原理。 一、Oracle字符集的查看 在Oracle中,可以通过以下SQL查询来查看当前数据库的字符集设置: ```sql SELECT * FROM NLS_DATABASE_PARAMETERS ...

    Oracle导出成csv格式后显示乱码的解决方法

    总之,解决Oracle导出CSV文件显示乱码的关键在于理解字符编码和数据解析的过程。通过正确设置文件的编码和应用正确的分隔符,可以确保数据在不同程序间顺利转换并保持可读性。如果上述方法无效,可能需要检查数据库...

    oracle修改字符集

    在某些情况下,由于字符集不匹配,可能会导致数据导入导出时出现问题,比如提到的.dmp文件无法正常导入到其他数据库。针对这种情况,我们可以按照以下步骤来修改Oracle 11g数据库的字符集,使其更改为ZHS16GBK。 ...

    Oracle字符集专题

    最后,"Oracle字符集(5).txt"可能涉及数据导入导出与字符集的关联,如使用SQL*Loader、EXPDP/IMPDP时的字符集设置,以及如何确保导出的数据在导入到不同字符集的环境中时仍能正确显示。 总的来说,这个Oracle字符...

    查看oracle dmp字符集的小工具

    在处理这些文件时,确保字符集的正确性至关重要,因为字符集不匹配可能导致数据导入后的乱码问题。"查看oracle dmp字符集的小工具"就是针对这一需求开发的实用程序。 该工具的特色在于它的绿色小巧,无需安装即可...

    OracleXE 导入系统缺少的包 更改字符集sql命令

    本文将深入探讨如何解决OracleXE导入系统时缺少的包问题以及如何更改数据库的字符集。 首先,"导入系统缺少的包"可能指的是在执行数据泵导入(如`expdp`和`impdp`)或使用SQL*Loader等工具进行数据迁移时,发现某些...

    Oracle切换客户端字符集

    1. 数据导入导出:在进行数据导入或导出时,确保源和目标数据库的字符集匹配,或者在转换过程中正确设置客户端字符集,以避免数据丢失或乱码。 2. 应用程序连接:当应用程序连接到Oracle数据库时,可能需要根据应用...

    oracle 中文字符集问题

    ### Oracle中文字符集问题解析与解决方案 在Oracle数据库的日常管理和应用开发中,中文字符集的设置和管理是一项至关重要的工作。不当的字符集配置可能导致数据存储错误、查询结果异常或用户界面显示乱码等问题。...

    BLOG_Oracle_lhr_将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中.pdf

    ### Oracle 数据库中不同字符集DMP文件的导入方法与技巧 #### 1. 引言 在Oracle数据库管理过程中,经常会遇到需要将一个数据库的备份文件(通常为.dmp格式)导入到另一个数据库的情况。这涉及到源数据库与目标...

    Oracle数据库升迁时字符集问题的解决.pdf

    Oracle 数据库升迁时字符集问题的解决 Oracle 数据库升迁时字符集问题是许多开发者和数据库管理员头痛的问题。这个问题的解决需要了解 Oracle 数据库升迁过程中的字符集问题,并掌握 Export 和 Import 命令的使用...

    oracle数据导入导出

    3. **字符集问题**:在导出导入过程中,需要注意源数据库和目标数据库的字符集是否一致。 4. **错误处理**:通过设置 `ignore` 参数可以控制导入过程中的错误处理方式。 #### 六、示例 - **创建新用户**: ```sql...

    Oracle 字符集的查看和修改

    在 NLS_LANG 参数中,字符集是决定数据能否在不同数据库间导入导出的关键因素。例如,如果两个数据库的字符集第三部分相同,即使语言和地域设置不同,它们仍能进行数据交换。ZHS16GBK 就是一个例子,它代表采用 GBK ...

    Oracle11g 字符集 AL32UTF8 修改为ZHS16GBK

    ### Oracle11g 字符集 AL32UTF8 修改为 ZHS16GBK 的步骤与注意事项 #### 一、背景介绍 在Oracle11g环境下,可能会遇到需要更改数据库字符集的情况,例如从AL32UTF8修改为ZHS16GBK。这种变更通常发生在需要支持特定...

    oracle安装卸载和导入导出数据

    - 如果结果显示为`SIMPLIFIED CHINESE_CHINA.ZHS16GBK`或`AMERICAN_AMERICA.ZHS16CGB231280`,则表示当前Oracle支持中文字符集。 - 如果不支持,则需进行字符集修改。 ##### 4. 修改Oracle字符集支持中文 1. **...

    Linux下Oracle数据导入导出方法

    与`exp`相对应,`imp`命令用于将之前导出的数据重新导入到Oracle数据库中。`imp`同样支持多种导入模式,具体用法如下: - **基本导入模式**:类似地,不指定任何参数直接运行`imp`命令时,会引导用户进行一系列交互...

    oracle导入导出dmp

    Oracle 导入导出 DMP 文件详解 Oracle 是一种广泛使用的关系型数据库管理系统,导入导出 DMP 文件是 Oracle 数据库管理员和开发者经常遇到的一个重要任务。下面将详细介绍 Oracle 导入导出 DMP 文件的步骤和相关...

    Oracle_字符集的查看和修改

    ### Oracle 字符集的查看与修改 #### 一、Oracle 字符集概述 **Oracle 字符集** 是指 Oracle 数据库系统中用于解释字节数据的一组符号集合。Oracle 支持多国语言架构,这使得用户能够在不同的语言环境下存储、处理...

Global site tag (gtag.js) - Google Analytics