我们在exp导入的时候,经常会有警告字符不一致的问题。下面来看看在imp/exp导入导出的时候,nls_lang这个参数到底应该怎么来配置。
我们这里只做查看已经导出的exp文件的字符集。
从上面提示可以看到database的字符集是ZHS16GBK,而我的client的nls_lang中的client字符集是US7ASCII。
下面是查看已经导出的/tmp/scott.dmp文件的字符集
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不一样的时候会出现下面的提示:
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]