用sqlpluse导出和导入数据

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:37   2257   0

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

查看字符集:
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即可


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP