oracle数据库导入数据丢失问题,修改字符集即可

1、原因:查看导入过程中的log,发现是由于字符集不同导致数据长度太长导致数据丢失;

  本地是utf-8类型,服务器上是ZHS16GBK;

 2、处理方法,修改字符集和服务器一致,然后重新导入数据;

进入dos窗口
输入:sqlplus / as sysdba
若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令:
SQL>startup mount;

SQL>alter system enable restricted session;

SQL>alter system set job_queue_processes=1000;

SQL>alter system set aq_tm_processes=0;

SQL>alter database open;

-- 根据需要选择字符集,此处若报错,忽略,走下一步即可
SQL>ALTER DATABASE CHARACTER SET zhs16gbk; 或者 ALTER DATABASE CHARACTER SET UTF8

SQL>alter database national character set zhs16gbk;
根据需要选择字符集,此处若出现必须是原有字符集的超集问题,根据需要转换的字符集执行如下SQL
alter database character set internal_use  zhs16gbk;
ALTER DATABASE CHARACTER set internal_use  UTF8

SQL>shutdown immediate;

SQL>startup

SQL>select userenv('language') from dual
;--查询当下的字符集

 end;

posted @ 2020-08-06 16:14  xh_Blog  阅读(1220)  评论(0编辑  收藏  举报