可能原因一:导入数据库不支持中文。这种情况可以修改下编码格式。
sql> conn / as sysdba;
sql> shutdown immediate;
database closed.
database dismounted.
oracle instance shut down.
sql> startup mount;
oracle instance started.
total system global area 135337420 bytes
fixed size 452044 bytes
variable size 109051904 bytes
database buffers 25165824 bytes
redo buffers 667648 bytes
database mounted.
sql> alter system enable restricted session;
system altered.
sql> alter system set job_queue_processes=0;
system altered.
sql> alter system set aq_tm_processes=0;
system altered.
sql> alter database open;
database altered.
sql> alter database character set internal_use UTF-8;
sql> shutdown immediate;
sql> startup;
可能原因二:导入数据库和之前的导出数据库的编码格式不一致。这种情况只能是查看下源数据库的编码格式,之后通过上面的方法来进行编码格式修改了。
备注:
查看数据库编码格式sql:select userenv('language') from dual;
导入数据库的编码和导入的数据库默认编码不一致才会这样,可以使用下面语句分别查看两个数据库的编码:
select userenv('language') from dual;
然后统一两个库的编码重新导入就可以了。
修改编码语句:
alter database character set 字符集;
例如:alter database character set INTERNAL_USE.ZHS16GBK;
应该是你数据的编码和导入的数据库默认编码不一致导致的,你可以试试修改要导入的数据库编码!