oracle 外部表
外部表
外部表介绍
ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件。因此,建立外部表时不会产生段、区、数据块等存储结构,只有与表相关的定义放在数据字典中。外部表,顾名思义,存储在数据库外面的表。当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT、UPDATE、DELETE操作)。不能对外部表建立索引。因为创建索引就意味着要存在对应的索引记录。而外部表其实在没有存储在数据库中。故在外部是无法建立索引的。如果硬要建立的话,则系统会提示“操作在外部组织表上不受支持”的错误提示。
create directory dir1 as ‘/home/oracle/dir1’;
创建一个目录dir1
grant read,write on directory dir1 to hr;
将读写目录dir1的权限授给hr
第一种方式:
第一种方式可以直接创建外部表所使用的文件
创建外部表语句
此时我们可以在目录dir1下看到我们创建的外部表的三个文件
第二种方式:
第二种方法需要先创建外部表的文件
可以直接在文件中写入数据
创建外部表语句
CREATE TABLE "HR"."EXT_TAB2"
( "ID" NUMBER(3,0),
"NAME" VARCHAR2(20 BYTE)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY "DIR1"
LOCATION
( "DIR1":'ext_tab1',
"DIR1":'ext_tab2'
)
);
此时我们在数据库中就可直接查看到刚才shell写入的数据