传输表空间遇到字符集问题

69 篇文章 0 订阅
55 篇文章 1 订阅

传输表空间当进行无数据导入时,遇到了两个库的字符不一样的问题,如下:
[oracle@dbserver1 ~]$ imp \'sys/system as sysdba\' transport_tablespace=y file=exp_userstan.dmp log=imp.log tablespaces=users,tan

Import: Release 10.2.0.1.0 - Production on Mon Apr 23 01:05:44 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

Export file created by EXPORT:V10.02.01 via conventional path
About to import transportable tablespace(s) metadata...
import done in US7ASCII character set and AL16UTF16 NCHAR character set
. importing SYS's objects into SYS
. importing SYS's objects into SYS
IMP-00017: following statement failed with ORACLE error 29345:
 "BEGIN   sys.dbms_plugts.beginImport ('10.2.0.1.0',31,'2000',10,'Linux IA (3"
 "2-bit)',56303,70701,2,0,0,0); END;"
IMP-00003: ORACLE error 29345 encountered
ORA-29345: cannot plug a tablespace into a database using an incompatible character set
ORA-06512: at "SYS.DBMS_PLUGTS", line 2386
ORA-06512: at "SYS.DBMS_PLUGTS", line 1946
ORA-06512: at line 1
IMP-00000: Import terminated unsuccessfully

检查源库:

SQL> select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from
  2  (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,
  3  (select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,
  4  (select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;

TAB1.AA||'_'||TAB2.BB||'.'||TAB3.CC
--------------------------------------------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1
检查目标库:
SQL> select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from
  2  (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,
  3  (select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,
  4  (select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;

TAB1.AA||'_'||TAB2.BB||'.'||TAB3.CC
--------------------------------------------------------------------------------
AMERICAN_AMERICA.US7ASCII
修改目标库
SQL> alter database character set internal_convert WE8ISO8859P1;
alter database character set internal_convert US7ASCII
*
ERROR at line 1:
ORA-12719: operation requires database is in RESTRICTED mode

SQL> shutdown immediate
SQL> startup mount;
SQL> alter system enable restricted session;
SQL> alter database open;
SQL> alter database character set internal_convert WE8ISO8859P1;
SQL> shutdown immediate
SQL> shutdown immediate
SQL> startup mount;
SQL> alter system disable restricted session;
SQL> alter database open;

重新检查目标库

SQL> select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from
  2  (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,
  3  (select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,
  4  (select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;

TAB1.AA||'_'||TAB2.BB||'.'||TAB3.CC
--------------------------------------------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1

如此解决后,正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值