ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle 外部表创建(转)

Oracle 外部表创建(转)

原创 Linux操作系统 作者:拉风小子 时间:2013-05-12 14:44:47 0 删除 编辑
Oracle 外部表创建实验

Oracle为外部表提供了两种访问的驱动程序,默认的访问程序是oracle_loader,它允许使用oracle的装载技术从外部文件中读取数据。另一种访问驱动程序是oracle_datapump它从数据库读取数据库并将数据插入到外部表中。

1.  Oracle_loader驱动程序

创建外部表去访问D:\waibubiao 下exp.dat文件中的记录

(1).创建一个目录

create directory mulu as 'D:\waibubiao'

SQL> create directory mulu as 'D:\waibubiao';

目录已创建。

(2).给scott用赋予对目录mulu的读写权限

SQL> grant read,write on directory mulu to scott;

授权成功。

SQL>

(3).在soctt用户下创建外部表admin_ext_testing

create table admin_ext_testing

(id number, name varchar(10))

organization external

(type oracle_loader

default directory mulu

access parameters

(

records delimited by newline

badfile mulu:'exp.bad'

logfile mulu:'emp.log'

fields terminated by ','

missing field values are null

(id,name))

location ('exp.dat'))

reject limit unlimited;

SQL> conn scott/tiger

已连接。

SQL> create table admin_ext_testing

  2  (id number, name varchar(10))

  3  organization external

  4  (type oracle_loader

  5  default directory mulu

  6  access parameters

  7  (

  8  records delimited by newline

  9  badfile mulu:'exp.bad'

 10  logfile mulu:'emp.log'

 11  fields terminated by ','

 12  missing field values are null

 13  (id,name))

 14  location ('exp.dat'))

 15  reject limit unlimited;

表已创建。

SQL>

(4).外部表创建成功,查询外部表中的数据

SQL> select * from admin_ext_testing;

        ID NAME

---------- --------------------

         1 jack

         2 pter

         3 tom

         4 sola

         5 kobe

         6 ddd

         7 jjjjj

         8 999

已选择8行。

SQL>

至此oracle可以访问外部文件的数据了

 

2.  Oracle_datapump驱动程序

创建一个外部表去访问另一个数据库中的数据库,先把令一个数据库中的数据导入一个文件,然后再去访问外部文件。

数据库mdsp要访问数据库wlm中一个表test的数据,数据如下:

SQL> select * from test;

        ID NAME

---------- --------------------

      1000 abc

      1001 abc

      1002 abcer

      1003 defalut

SQL>

(1).在wlm数据库上创建一个目录data

create directory mulu as 'D:\data'

SQL> create directory mulu as 'D:\data';

目录已创建。

SQL>

(2)在wlm数据库上创建外部表,执行完下面的语句后,会把表test中数据放到d:\data下TEST.DAT中

SQL> create table ext_test (id , name)

  2  organization external

  3  (

  4   type oracle_datapump

  5   default directory mulu

  6   location('test.dat')

  7   )

  8   as select * from test;

表已创建。

SQL>

(3)在mdsp数据库中创建目录data指向d:\data

SQL> create directory data as 'D:\data'

目录已创建。

SQL>

(4)在mdsp上创建外部表去访问TEST.DAT文件中的数据

SQL> create table ext_mdsp_test (id number , name varchar(10))

  2  organization external

  3  (

  4   type oracle_datapump

  5   default directory data

  6   location('test.dat')

  7   );

表已创建。

SQL>

(5)在mdsp数据库上访问外部表ext_mdsp_test

SQL> select * from ext_mdsp_test;

        ID NAME

---------- --------------------

      1000 abc

      1001 abc

      1002 abcer

      1003 defalut

SQL>

注:在外部表上不能执行DML操作

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27003343/viewspace-760876/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 表之间的连接
下一篇: 不可见索引
请登录后发表评论 登录
全部评论

注册时间:2012-05-24

  • 博文量
    20
  • 访问量
    39007