oracle基础——外部表(笔记)

外部表有一些限制——不能从Oracle内更新或删除外部表中的行,不能对外部表创建索引

可以通过ORACLE_DATAPUMP访问驱动程序使用外部表把数据从表中卸载到外部文件

                        访问外部数据

访问外部文件:首先必须使用CREATE DIRECTORY命令定义一个指向外部文件的位置的目录对象,需要访问外部文件的用户必须具有访问相应目录的READ权限

如:create directory book_dir as '/u01/external';      grant read ,write on directory book_dir to hr;

SQL*LOADER使用程序

                        创建外部表

既然外部数据可用并可以访问,就可以创建一个访问它的表结构,需要使用create table 命令的ORGANIZATION EXTERNAL子句,在该子句中,可以指定数据结构

如:

  create table bookshelf_ext

  (

  title varchar2(100),

  publisher varchar2(100)

  )

  organization external

  (

  type oracle_loader

  default directory book_dir

  access parameters(records delimited by newline

  fields terminated by "~"

          (title char(100),

          publisher char(200)

          )

          )

  location('bookshelf_dump.lst')

  );

可以查询USER_EXTERNAL_TABLES 数据字典视图,得到外部表的相关信息,这些信息包括默认目录和访问定义

USER_EXTERNAL_TABLES不显示表所引用的外部文件名,为了查看外部文件的信息,应查询USER_EXTERNAL_LOCATIONS;

                        外部表创建选项

在ORGANIZATION EXTERNAL子句中,有4个主要子选项:TYPE、DEFAULT DIRECTORY、ACCESS PARAMETERS和LOCATION.

 1.TYPE

对于外部表,访问驱动程序是用来转换外部数据的API,可将TYPE ORACLE_LOADER用于外部表,如果正在使用Data Pump,或者在创建外部表时正在加载外部表,则可以使用ORACLE_DATAPUMP。如果使用AS子查询子句从数据库卸载数据,然后重新加载,就必须使用ORACLE_DATAPUMP访问驱动程序,默认的驱动程序是TYPE ORACLE_LOADER访问驱动程序

猜你喜欢

转载自www.cnblogs.com/zhuangzhilingyun/p/9624476.html