ORACLE_DATAPUMP将表中的数据写成外部文件或查询外部文件实例

--DBA 执行
grant CREATE ANY DIRECTORY to t071;

--用户 t071执行
  
create table countries(
country_id number,
country_name varchar2(30),
country_reigion varchar2(30)
 );
 
  insert into countries values(1,'AMERICA','america');
  insert into countries values(2,'china','zhuzhou');
  insert into countries values(3,'JAPAN','dongjing');
  commit;
  

  --创建目录dir
create or replace directory dir as 'D:\dump\dir';

  ----执行创建外部表的语句
   CREATE TABLE countries_ext
    ORGANIZATION EXTERNAL
    (
      TYPE ORACLE_DATAPUMP
      DEFAULT DIRECTORY dir --生成dmp文件存放路径
      LOCATION ('countries_ext.dmp') --生成外部文件的名称
    )
    AS SELECT * FROM countries; --数据来源于实体表
--执行如下语句,有3条数据
    select * from countries_ext;
    
--查看服务器电脑本地磁盘
D:\dump\dir>dir
 驱动器 D 中的卷是 新加卷
 卷的序列号是 A4D2-5C86

 D:\dump\dir 的目录

2019-10-22  15:22    <DIR>          .
2019-10-22  15:22    <DIR>          ..
2019-10-22  15:22            12,288 COUNTRIES_EXT.DMP
2019-10-22  15:24                90 COUNTRIES_EXT_1384_3664.log
               2 个文件         12,378 字节
               2 个目录 20,493,324,288 可用字节
                   
由此可见,创建外部实体表成功。


二、使用datapump,根据硬盘存储的外部文件(COUNTRIES_EXT.DMP)创建oracle数据库实体表COUNTRIES_EXT2
drop table countries_ext2;
CREATE TABLE countries_ext2
(COUNTRY_ID NUMBER,
COUNTRY_NAME VARCHAR2(30),
COUNTRY_REIGION VARCHAR2(30)
)
 ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY dir
LOCATION ('countries_ext.dmp')
); 

select * from countries_ext2;

--执行相应的操作

  insert into countries values(4,'CN','BeiJing');
  commit;
  select * from countries;

  --执行如下2个语句,全部失败
  insert into countries_ext values(5,'CN','SH');
  insert into countries_ext2 values(5,'CN','SH');
  
  --但是如下语句可以执行成功
      select * from countries_ext;
      select * from countries_ext2;
      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值