oracle 11g 含xmlType类型表的导入导出

常规导出报错

toad->数据库->导出->导出应用程序向导

EXP-00107: 不支持特征 (BINARY XML) (属于列 XML, 表 JS.TEST)。不会导出该表。

怎么解决?
在服务端用expdp、impdp

重头说起

测试机是centos7

启动docker 数据库实例

docker run -d  -p 49164:1521 --name=oracle11test  -e TZ=Asia/Shanghai  -v /home/oracledata/test:/u01/app/oracle  sath89/oracle-xe-11g

数据库名:XE
端口:49164
用户名:sys
密码:oracle 

本地挂载数据目录
/home/oracledata/test
docker内实例数据目录
/u01/app/oracle

toad创建用户

这里写图片描述

指定表空间

这里写图片描述

授予connect,resource角色

这里写图片描述

oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba。角色说明

connect role(连接角色)
--临时用户,特指不需要建表的用户,通常只赋予他们connect role. 
--connect是使用oracle简单权限,这种权限只对其他用户的表有访问权限,包括select/insert/update和delete等。
--拥有connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他  数据的链(link)

resource role(资源角色)
--更可靠和正式的数据库用户可以授予resource role。
--resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)dba role(数据库管理员角色)
--dba role拥有所有的系统权限
--包括无限制的空间限额和给其他用户授予各种权限的能力。systemdba用户拥有

授予test用户使用目录备份的权限

这里写图片描述
我们备份的dmp文件存放在DATA_PUMP_DIR下
具体指向服务器目录
/u01/app/oracle/admin/XE/dpdump/

创建测试表

CREATE TABLE test.TEST
(
  ID   VARCHAR2(1 BYTE),
  XML  SYS.XMLTYPE
)
insert into test.test values(1,'<a></a>')

进入docker,准备导出导入

[root@node01 dpdump]# docker exec -it oracletest bin/bash

root@b22539d9043e:/#  expdp test/test@XE directory=DATA_PUMP_DIR TABLES=test dumpfile=test.dmp

注意test.dmp不能是已存在的文件,不然不会执行导出

将test表删除,不删除数据是不导入的
然后执行下面导入命令

impdp test/test@XE directory=DATA_PUMP_DIR dumpfile=test.dmp

成功!!!

导出整库的方法,全库导入导出需要角色
DATAPUMP_EXP_FULL_DATABASE
DATAPUMP_IMP_FULL_DATABASE
我直接给了一个dba角色,偷个懒

expdp test/test@XE DIRECTORY=DATA_PUMP_DIR DUMPFILE=full.dmp FULL=y
如果是备份库要提前建好test用户并授予导入角色,目录权限
impdp test/test@XE  DIRECTORY=DATA_PUMP_DIR DUMPFILE=full.dmp FULL=y
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值