IMP-00019: / IMP-00003: 遇到 ORACLE 错误 12899 ORA-12899:

导读:GBK与AL32UTF8字符不一致导致,在由ZHS16GBK字符集编码的数据库导出的DMP文件导入到由AL32UTF8字符集编码的数据库时有的表就会提示”字符过长”,导入不成功!
解决办法:

  • 修改字符集编码。
  • 重装数据库,安装时候注意字符集编码的选择。

我用修改字符集编码方法来操作:

action==

C:\Users\Administrator>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 3月 10 10:34:47 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.

SQL> conn sys/password as sysdba
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 1071333376 bytes
Fixed Size 1375792 bytes
Variable Size 679477712 bytes
Database Buffers 385875968 bytes
Redo Buffers 4603904 bytes
数据库装载完毕。
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

系统已更改。

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

系统已更改。

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

系统已更改。

SQL> alter database open;

数据库已更改。

SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

数据库已更改。

SQL> select * from v$nls_parameters;
查询表

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1071333376 bytes
Fixed Size 1375792 bytes
Variable Size 679477712 bytes
Database Buffers 385875968 bytes
Redo Buffers 4603904 bytes
数据库装载完毕。

数据库已经打开。

可以了。

你可能感兴趣的:(oracle)