您好,登录后才能下订单哦!
作为一名程序员,经常会遇见一些诡异的事情,今天我就遇见一个,oracle数据通过数据泵impdp导入后出现乱码,经过如下操作:
1.oracle server 端 字符集查询:
select userenv('language') from dual
发现查出来的结果和我原导出数据的结果不一致;
原导出数据库的结果为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
新数据的结果是:SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1
2.server端字符集修改
更改字符集步骤方法(WE8ISO8859P1 --> ZHS16GBK)
登录oracle所在linux服务器,通过oracle(数据库安装用户)
登录后,以管理员身份登录sqlplus
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 SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
SQL> shutdown immediate;
SQL> startup
再次查看登录系统,结果发现:
;
出现了这种愤怒的方式,于是我也是醉了,后来我决定重新再次导入数据:
3.数据泵导入命令:
(1).oracle创建directory:
create directory 名称 as ‘路径’;
drop directory 名称 ;
例如:create directory bbsp_tmp as ‘/home/app’;
(2).linux下执行:
directory=名称(已经创建的),将dmp文件存放在这个路径下;
impdp 导入数据库用户/导入数据库密码 directory=名称(已经创建的)dumpfile=*.dmp(dmp文件) remap_schema=原导出文件用户名:导入数据用户名;
例:impdp bbspzhun/bbspzhun directory=bbsp_tmp dumpfile=bbsp20181121.dmp remap_schema=bbsp:bbspzhun;
结果又出现了这个问题:expdp导出数据时碰到ora-39006错误,错误提示如下所示,
ORA-39006: internal error
ORA-39213: Metadata processing is not available
4.解决ORA-39006: internal error问题:
SQL> execute dbms_metadata_util.load_stylesheets;
PL/SQL procedure successfully completed.****
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。