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

本文介绍了解决由ZHS16GBK字符集编码的数据库导出的DMP文件,在导入到AL32UTF8字符集编码的数据库时遇到“字符过长”的问题。通过调整数据库字符集编码,实现数据文件的成功导入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读: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
数据库装载完毕。

数据库已经打开。

可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值