导入Oracle Dump文件,其中源和目标数据库具有不同的字符集



我正在尝试导入一个.dmp文件,该文件使用Oracle数据库11G企业版导出到Windows 7上运行的Oracle 11G XE中,但我收到了许多错误:

ORA-02374: conversion error loading table "SCHEMA"."TABLENAME"
ORA-12899: value too large for column COLNAME (actual: 90, maximum: 75)

我使用的导入命令:

impdp system/pwd remap_schema=OLD_SCHEMA:NEW_SCHEMA tables=OLD_SCHEMA.Table1,OLD_SCHEMA.Table2 directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=import.log exclude=grant,index,statistics

转储文件的字符是WE8ISO8859P1,而我的目标数据库是AL32UTF8

我在某个地方阅读了Oracle 11G XE仅支持AL32UTF8。因此,我无法更改此字符集以匹配源。

有什么办法可以导入转储文件而无需转换错误?

谢谢

问题是,某些字符每个字符都会占用一个以上的字节。您需要将数据库NLS_LENGTH_SEMANTICS更改为" char"并重做导入。逐步的解释可以在这里找到:http://albertolarripa.com/2012/06/10/ora-12899-changing-columns-columns-to-char/

最新更新