用sqlpluse导出和导入数据

来源:互联网 发布:sql入门到精通视频 编辑:程序博客网 时间:2024/06/06 09:58

首先确保字符集一致,这样才不会出现乱码。

 

查看字符集:
 A、oracle server 端
  字符集查询
  select userenv(‘language’) from dual
 eg:
SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
  其中NLS_CHARACTERSET 为server端字符集 NLS_LANGUAGE 为 server端字符显示形式

 B、查询oracle
    client端的字符集
    $echo $NLS_LANG 
   eg:
 oracle@q:~> echo $NLS_LANG
  AMERICAN_AMERICA.AL32UTF8
 oracle@q:~>
    如果发现你select 出来的数据是乱码,请把client端的字符集配置成与linux操作系统相同的字符集。
     如果还是有乱码,则有可能是数据库中的数据存在问题,或者是oracle服务端的配置存在问题。

修改字符集:
sqlplus /nolog;
SQL>conn / as sysdba;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
(这一步一般会出错,所以需要重复执行上面从SHUTDOWN IMMEDIATE开始的所有语句)
           SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database altered.
           SQL> select * from v$nls_parameters;
SQL> SHUTDOWN IMMEDIATE; 
SQL> STARTUP;

其次,利用sqlplus自带的export和Tools/import tables 工具完成数据的导出和导入,

导出数据库:选择sql inserts界面,将deletes records,disable triggers选项勾掉。单击export按钮即可导出

导入数据库:选择Tools/import tables菜单,选择sql inserts界面,点击import即可