ORACLE 查看imp导出文件中字符集

简介:

   我们在exp导入的时候,经常会有警告字符不一致的问题。下面来看看在imp/exp导入导出的时候,nls_lang这个参数到底应该怎么来配置。
 
   ORACLE推荐在执行exp的时候nls_lang配置与database nls_character一致,这样不会出现字符转换的问题,能提高exp的效率。查看database nls_character
 
 
 
  1. SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET'
  2.  
  3. VALUE 
  4. ------------------------------ 
  5. ZHS16GBK 

  我们这里只做查看已经导出的exp文件的字符集。

 
 
  1. $ echo $NLS_LANG 
  2.  
  3. $  
  4. $ exp userid=scott/oracle file='/tmp/scott.dmp' log='/tmp/scott.log' 
  5.  
  6. Export: Release 11.2.0.3.0 - Production on Thu Aug 30 13:07:22 2012 
  7.  
  8. Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved. 
  9.  
  10.  
  11. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 
  12. With the Partitioning, OLAP, Data Mining and Real Application Testing options 
  13. Export done in US7ASCII character set and AL16UTF16 NCHAR character set 
  14. server uses ZHS16GBK character set (possible charset conversion) 
  15. . exporting pre-schema procedural objects and actions 
  16. . exporting foreign function library names for user SCOTT  
  17. . exporting PUBLIC type synonyms 
  18. . exporting private type synonyms 
  19. . exporting object type definitions for user SCOTT  
  20. About to export SCOTT's objects ... 
  21. . exporting database links 
  22. . exporting sequence numbers 
  23. . exporting cluster definitions 
  24. . about to export SCOTT's tables via Conventional Path ... 
  25. . . exporting table                          BONUS          0 rows exported 
  26. EXP-00091: Exporting questionable statistics
  27. . . exporting table                           DEPT          4 rows exported 
  28. EXP-00091: Exporting questionable statistics
  29. EXP-00091: Exporting questionable statistics
  30. . . exporting table                            EMP         14 rows exported 
  31. EXP-00091: Exporting questionable statistics
  32. EXP-00091: Exporting questionable statistics
  33. . . exporting table                       SALGRADE          5 rows exported 
  34. EXP-00091: Exporting questionable statistics
  35. . exporting synonyms 
  36. . exporting views 
  37. . exporting stored procedures 
  38. . exporting operators 
  39. . exporting referential integrity constraints 
  40. . exporting triggers 
  41. . exporting indextypes 
  42. . exporting bitmap, functional and extensible indexes 
  43. . exporting posttables actions 
  44. . exporting materialized views 
  45. . exporting snapshot logs 
  46. . exporting job queues 
  47. . exporting refresh groups and children 
  48. . exporting dimensions 
  49. . exporting post-schema procedural objects and actions 
  50. . exporting statistics 
  51. Export terminated successfully with warnings. 

   从上面提示可以看到database的字符集是ZHS16GBK,而我的client的nls_lang中的client字符集是US7ASCII。

   下面是查看已经导出的/tmp/scott.dmp文件的字符集

 
 
  1. $ imp userid=scott/oracle file='/tmp/scott.dmp' show=yes             
  2.  
  3. Import: Release 11.2.0.3.0 - Production on Thu Aug 30 13:07:58 2012 
  4.  
  5. Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved. 
  6.  
  7.  
  8. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 
  9. With the Partitioning, OLAP, Data Mining and Real Application Testing options 
  10.  
  11. Export file created by EXPORT:V11.02.00 via conventional path 
  12. import done in US7ASCII character set and AL16UTF16 NCHAR character set 
  13. import server uses ZHS16GBK character set (possible charset conversion) 

import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses ZHS16GBK character set (possible charset conversion)

import done这行表示的client 的字符集是US7ASCII,导入导出端的字符集是相同的。

import server这行表示导入的数据库的字符集是ZHS16GBK,由于字符集不一样,所以会出现字符集的转换。

当exp client与imp client不一样的时候会出现下面的提示:

 
 
  1. $ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 
  2. $ echo $NLS_LANG 
  3. AMERICAN_AMERICA.ZHS16GBK 
 
 
  1. $ imp userid=scott/oracle file='/tmp/scott.dmp' show=yes 
  2.  
  3. Import: Release 11.2.0.3.0 - Production on Thu Aug 30 13:11:53 2012 
  4.  
  5. Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved. 
  6.  
  7.  
  8. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production 
  9. With the Partitioning, OLAP, Data Mining and Real Application Testing options 
  10.  
  11. Export file created by EXPORT:V11.02.00 via conventional path 
  12. import done in ZHS16GBK character set and AL16UTF16 NCHAR character set 
  13. export client uses US7ASCII character set (possible charset conversion) 

import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
export client uses US7ASCII character set (possible charset conversion)

export client这行表示导出client的字符集是US7ASCII。

 

更详细的见官方文档:NLS considerations in Import/Export - Frequently Asked Questions [ID 227332.1]


  本文转自7343696 51CTO博客,原文链接:http://blog.51cto.com/luoping/977444,如需转载请自行联系原作者


相关文章
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
462 1
【赵渝强老师】Oracle的控制文件与归档日志文件
|
SQL Oracle 关系型数据库
Oracle 从 DMP 文件中恢复指定表的步骤
Oracle 从 DMP 文件中恢复指定表的步骤
1613 7
|
Oracle 关系型数据库 数据库
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。 数据库没有备份,无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件,急需恢复zxfg用户下的数据。 出现“system01.dbf需要更多的恢复来保持一致性”这个报错的原因可能是控制文件损坏、数据文件损坏,数据文件与控制文件的SCN不一致等。数据库恢复工程师对数据库文件进一步检测、分析后,发现sysaux01.dbf文件损坏,有坏块。 修复并启动数据库后仍然有许多查询报错,export和data pump工具使用报错。从数据库层面无法修复数据库。
数据库数据恢复—Oracle数据库文件出现坏块的数据恢复案例
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
456 1
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的数据文件
在Oracle数据库中,数据库由多个表空间组成,每个表空间包含多个数据文件。数据文件存储实际的数据库数据。查询时,如果内存中没有所需数据,Oracle会从数据文件中读取并加载到内存。可通过SQL语句查看和管理数据文件。附有视频讲解及示例。
271 0
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
10月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
837 93
|
9月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
447 0
|
12月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。

推荐镜像

更多