我正在尝试导入一个.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/