oracle 中数据库字符集不相同时,需导入导出数据的解决办法

问题:数据库字符集不同,导致字节不同,导致无法将数据库1中的大字段内容导入到数据库2中。

字符集描述:

数据库1:GBK格式

数据库2:UTF-8格式

需求:将数据库1中的数据导入到数据库2中。

解决办法:

第一种解决办法:

1)查询数据库字符集

SELECT值$ FROM sys.props $ WHERE name ='NLS_CHARACTERSET';

2)更改数据库字符集:
将数据库环境字符集的AL32UTF8,换为ZHS16GBK

         first: 以sysdba的身份登录上去 conn /as sysdba
   second: 关闭数据库shutdown immediate;
      three: 以mount打来数据库,startup mount
        four: 设置session

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
        five: 启动数据库

alter database open;
       sex: 修改字符集

ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
 seven: 关闭,重新启动

SQL>shutdown immediate;
SQL> startup
 

第二种方法:(不推荐,浪费时间)

1)将数据库1中的新建表结构复制过来,更改表字段长度,如:

数据库1:用户varchar2(100) - “改成:数据库2:用户varchar2(200) 

注:具体改多大,自定义。

更改数据库1中的所有属性长度之后,然后在数据库2中直接创建新表,命名自定。

2)然后导出数据库1中的某个表的数据:

exp scott / 123456 file = C:/Users/Administrator/Desktop/reg_app_info.dmp tables = reg_app_info

3)在数据库2中导入该表的数据:

imp scott / 123456 file = C:/Users/Administrator/Desktop/reg_app_info.dmp tables = reg_app_info ignore = y

注意(重点):加忽略= Y,

ignore = y如果没有表,创建并倒入数据,如果已经有的表,忽略创建的,但不忽略倒入。

4)在数据库2里面新建的表中查询数据,可看到数据已经成功导入到更改表字段属性之后的表里面了。(测试我已过,如有任何问题,请评论,我看到后会第一时间回复)

5)EXP / IMP在本地和数据库本机服务器上都是可以导入导出的,(之前不是特别的熟悉)。

6)附上新建数据库并赋权SQL:

select * from dba_users,其中username = upper(replace('gsnews_operation','',''));

创建
由gsnews_operation
默认表空间USERS标识的用户gsnews_operation;
grant connect to gsnews_operation;
将ctxapp授予gsnews_operation;
向gsnews_operation授予资源;
将创建视图授予gsnews_operation;
将创建过程授予gsnews_operation;
将创建序列授予gsnews_operation;
将创建类型授予gsnews_operation;
grant create gsnews_operation的同义词;
将exp_full_database授予gsnews_operation;
将alter system授予gsnews_operation;

 

 

 

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值