在Oracle中IMP导入数据时,如何解决目标数据库字符不一致问题

  

生产环境中经常使用到甲骨文的小鬼导入和EXP导出来功能来达到数据迁移的目的,通常在源数据库和目标数据库中查询字符集是否致,

测试环境中导入IMP导入报错信息如下:

导入命令如下:

[oracle@localhost。localdomain/软):$
导入:释放11.2.0.4.0——生产”$ PWD]美元“
别名sqlplus=皉lwrap sqlplus”
别名rman=皉lwrap rman”警报=
别名“cd/oracle/app/oracle/诊断接头/rdbms db01/db01/跟踪”
别名lsnrctl=皉lwrap lsnrctl”
别名adrci=皉lwrap adrci”
出口LANG=en_US
ORACLE_BASE=/oracle/app/甲骨文;出口ORACLE_BASE
ORACLE_HOME=$ ORACLE_BASE/产品/11.2.0;出口ORACLE_HOME
ORACLE_SID=db01;出口ORACLE_SID
ORACLE_TERM=xterm;出口ORACLE_TERM

路径=/usr/sbin:美元的道路;导出路径
路径=$ ORACLE_HOME/bin:美元的道路;导出路径

LD_LIBRARY_PATH=$ ORACLE_HOME/lib:/lib:/usr/lib。出口LD_LIBRARY_PATH
CLASSPATH=$ ORACLE_HOME/JRE: $ ORACLE_HOME/jlib: $ ORACLE_HOME/rdbms/jlib;出口类路径
NLS_DATE_FORMAT=" yyyy-mm-dd HH24: MI: SS”;出口NLS_DATE_FORMAT


如果[$ USER=凹坠俏摹眧 | ($ USER=巴瘛?;然后
,,,,,,,如果[$ SHELL=?bin/ksh”);然后
,,,,,,,,ulimit - p 16384
,,,,,,,,,,,,,ulimit - n 65536
,,,,,,,其他
,,,,,,,,,,,,,ulimit - u 16384 - n 65536
,,,,,,,fi
,,,,,,,umask 022
fi


2,配置环境变量(oracle@localhost
。localdomain:/软]vi ~/美元。bash_profile

3,查询配置后信息

[oracle@localhost。localdomain/软):猫~/美元。bash_profile
# . bash_profile

#的别名和函数如果[- f ~/
。bashrc]; (然后
,,,。~/ashrc
(fi

#用户特定环境和创业项目

=$ PATH: $ HOME/bin/

出口路径

# Oracle设置Oracle
TMP=/TMP;出口TMP
TMPDIR=$ TMP;出口TMPDIR
PS1=" [“whoami”@“主机名”:“‘$ PWD) $
别名sqlplus=" rlwrap sqlplus "
别名rman=" rlwrap rman“
别名警戒=" cd/oracle/app/oracle/诊断接头/rdbms/db01/db01/跟踪"
别名lsnrctl=" rlwrap lsnrctl "
别名adrci=" rlwrap adrci”
出口LANG=en_US
ORACLE_BASE=/oracle/app/甲骨文;出口ORACLE_BASE
ORACLE_HOME=$ ORACLE_BASE/产品/11.2.0;出口ORACLE_HOME
ORACLE_SID=db01;出口ORACLE_SID
ORACLE_TERM=xterm;出口ORACLE_TERM

路径=/usr/sbin:美元的道路;导出路径
路径=$ ORACLE_HOME/bin:美元的道路;导出路径

LD_LIBRARY_PATH=$ ORACLE_HOME/lib:/lib:/usr/lib。出口LD_LIBRARY_PATH
CLASSPATH=$ ORACLE_HOME/JRE: $ ORACLE_HOME/jlib: $ ORACLE_HOME/rdbms/jlib;出口类路径
NLS_DATE_FORMAT=" yyyy-mm-dd HH24: MI: SS”;出口NLS_DATE_FORMAT



如果[$ USER=凹坠俏摹眧 | ($ USER=巴瘛?;然后
,,,,,,,如果[$ SHELL=?bin/ksh”);然后
,,,,,,,,ulimit - p 16384
,,,,,,,,,,,,,ulimit - n 65536
,,,,,,,其他
,,,,,,,,,,,,,ulimit - u 16384 - n 65536
,,,,,,,fi
,,,,,,,umask 022
fi

4,配置后可以通过SQL查询修改后字符集是否变更

select * from nls_database_parameters;

5,再次重启导入数据

[oracle@localhost。localdomain/软):$ imp斯科特/斯科特文件=/软/scott_v1。dmp日志=/软/scott_v1。log1忽视=y完整=y

进口:释放11.2.0.4.0——生产太阳2017年10月22日16:46:17

版权(c) 1982年,2011年,甲骨文和/或其附属公司只保留所有权利。


:连接Oracle数据库11 g企业版发布11.2.0.4.0 - 64生产
分区,OLAP、数据挖掘和真实的应用程序中测试选择

导出文件由出口:V11.02.00通过传统路径
进口在ZHS16GBK字符集和AL16UTF16 NCHAR字符集
。斯科特的对象导入斯科特。
。进口table ,,,,,,,,,,,,,,,,,,,,,,“奖金”,,,,,,,,,进口
0行。。进口table ,,,,,,,,,,,,,,,,,,,,,,,“部门”,,,,,,,,,4行
进口。。进口table ,,,,,,,,,,,,,,,,,,,,,,,,null   null   null   null   null   null   null

在Oracle中IMP导入数据时,如何解决目标数据库字符不一致问题