oracle不同版本字符集手稿




*************虚拟机

用户:FPBJ
密码:fpbj

10.19.22.91

orcl


imp fpbjy/fpbjy@10.19.22.91:1521/orcl  file=F:\fpbjy1.dmp full=y

imp csj/csj@139.196.221.111:1521/CSJ fromuser=csj_kf touser=csj file=d:\csj_kf.dmp


impdp fpbjy/fpbjy@10.19.22.91:1521/orcl directory=DATA_PUMP_DIR dumpfile=FPBJY.DMP REMAP_SCHEMA=fpbjy:fpbjy  full=y;


impdp smtj2012/密码@localhost/devdb DIRECTORY=dump_dir DUMPFILE=bkmmtdb_smtj20130417120001.dmp remap_schema=smtj:smtj2012 remap_tablespace=smtj:smtj2012 

--oracle通过impdp导入不同表用户、不同表空间的数据
impdp
fpbjy/fpbjy@10.19.22.91:1521/orcl directory=DATA_PUMP_DIR dumpfile=FPBJY.DMP REMAP_SCHEMA=fpbjy:fpbjy remap_schema=fpbj:fpbjy remap_tablespace=TS_FPBJ:TS_FPBJY   full=y version=11.2.0.1.0;




    2.REMAP_SCHEMA

        该选项用于将源方案的所有对象装载到目标方案中.

        REMAP_SCHEMA=source_schema:target_schema



    3.REMAP_TABLESPACE

        将源表空间的所有对象导入到目标表空间中

        REMAP_TABLESPACE=source_tablespace:target:tablespace


只要客户端的nls_lang的设置和数据库服务器的字符集一致就可以避免乱码的问题。

 查看数据库字符集:
SELECT PROPERTY_VALUE
   FROM DATABASE_PROPERTIES
  WHERE PROPERTY_NAME = 'NLS_CHARACTERSET';


91环境


--创建表空间
create tablespace TS_FPBJY datafile '/u01/app/oradata/mydb/TS_FPBJY.dbf'size 1024M autoextend on extent management local;
create temporary tablespace TS_DPBJY_TMP tempfile '/u01/app/oradata/mydb/TS_FPBJY_TMP.dbf' size 10m AUTOEXTEND ON
NEXT  10240K MAXSIZE UNLIMITED extent management local uniform size 128k;


--创建用户
create user FPBJY identified by fpbjy
default tablespace TS_FPBJY
temporary tablespace TS_DPBJY_TMP; 
grant dba to FPBJY;
grant unlimited tablespace to FPBJY;


91数据库原先字符集

NLS_CHARACTERSET  ZHS16GBK

AMERICAN_AMERICA.ZHS16GBK


US7ASCII

--修改字符集

SHUTDOWN IMMEDIATE;

STARTUP MOUNT EXCLUSIVE;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE OPEN;

ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE US7ASCII;(如果不行试一下:ALTER DATABASE character set INTERNAL_USE US7ASCII;这种方法绕过字符集检查)

SHUTDOWN immediate;

startup;


--linux环境启动orcale

第一步:登陆
root登陆之后切换到oracle用户上,输入
su oracle

第二步:连接
在oracle用户下,输入
sqlplus /nolog

第三步:使用管理员权限
输入
connect /as sysdba


数据库字符集在创建后原则上不能更改。不过有2种方法可行。   1. 如果需要修改字符集,通常需要导出数据库数据,重建数据库,再导入数据库数据的方式来转换。 2. 通过ALTER DATABASE CHARACTER SET语句修改字符集,但创建数据库后修改字符集是有限制的,只有新的字符集是当前字符集的超集时才能修改数据库字符集,例如UTF8是US7ASCII的超集,修改数据库字符集可使用ALTER DATABASE CHARACTER SET UTF8。


再sql*plus中使用system身份登陆数据库
然后执行下面语句:
DROP USER user_name CASCADE;
这样你该用户包括该用户下的表,试图,同义词,过程,索引,及相关的一切就都不见了。
然后再新建一个同名用户,赋予相应权限就可以了。


EXP导出的不能跨版本导入,你试试用EXPDP加version参数导出试试

select * from dba_directories;



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李晓LOVE向阳

你的鼓励是我持续的不断动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值