主要的原因是两个数据库的字符集不相同引起的
先查导出的数据的oracle字符集
用sys用户登陆oracle
执行如下SQL:
select * from nls_database_parameters where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
然后再把本机的字符集设置与数据源的机器相同
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
[color=red]注:如果在执行STARTUP MOUNT;
提示could not open parameter file '/bank/oracle/oracle10g/product/10.2.0/db_1/dbs/initORCL.ora',可以执行如下命令:STARTUP pfile=$ORACLE_HOME/admin/orcl/pfile/xxxxx.ora[/color]
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
[color=red]ALTER DATABASE OPEN;
注:当执行了STARTUP pfile=$ORACLE_HOME/admin/orcl/pfile/xxxxx.ora了命令后此条命令可以不执行[/color]
alter database character set INTERNAL_USE ZHS16GBK; --这个是字体集名称
SHUTDOWN IMMEDIATE;
STARTUP;
先查导出的数据的oracle字符集
用sys用户登陆oracle
执行如下SQL:
select * from nls_database_parameters where parameter in('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
然后再把本机的字符集设置与数据源的机器相同
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
[color=red]注:如果在执行STARTUP MOUNT;
提示could not open parameter file '/bank/oracle/oracle10g/product/10.2.0/db_1/dbs/initORCL.ora',可以执行如下命令:STARTUP pfile=$ORACLE_HOME/admin/orcl/pfile/xxxxx.ora[/color]
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
[color=red]ALTER DATABASE OPEN;
注:当执行了STARTUP pfile=$ORACLE_HOME/admin/orcl/pfile/xxxxx.ora了命令后此条命令可以不执行[/color]
alter database character set INTERNAL_USE ZHS16GBK; --这个是字体集名称
SHUTDOWN IMMEDIATE;
STARTUP;
本文介绍了解决因字符集不同导致的Oracle数据库导入导出问题的方法。通过查询字符集参数并调整目标数据库字符集,确保数据迁移过程顺利进行。
646

被折叠的 条评论
为什么被折叠?



