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;