Oracle External Table学习
1.了解外部表(External Table)
定义:结构被存放在数据字典,而表数据被放在操作系统文件中的表。
作用:在数据库中查询操作系统文件的数据,还可以将操作系统文件数据装载到数据库中。
与其它表的区别:在外部表上不能执行DML(Data Manipulation Language,数据操纵语言命令使用户能够查询数据库以及操作已有数据库中的数据)操作,也不能在外部表上建索引,只能执行select操作。
局限:外部表不支持多用户的并发修改,也不支持LOB类型,而且访问路径中的文件必须在服务器端。
2.外部表的使用
1) 数据文件的创建
在命令提示符下输入以下指令创建一个名为GIS051.dat文件作为我们将要使用的外部数据文件。
2) 创建目录并授权
目录是数据文件的存放目标,在本例中GIS051.dat数据文件在C盘中创建,则目录为“C:\”。CMD打开SQLPlus以sysdba身份连进数据库,创建数据目录Dir_External_table,并授权给用户scott。
3) 创建外部表
以scott用户入数据库,创建外部表gis051_external_table。
命令解析:
CREATE TABLE gis051_external_table(
name VARCHAR2(10),
studentno NUMBER,
hometown VARCHAR2(10)
)ORGANIZATION EXTERNAL ----声明为外部表
(
TYPE oracle_loader -----外部表类型(共两种)
DEFAULT DIRECTORY Dir_External_table ------之前建立的目录
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE ---一行为一条记录
FIELDS TERMINATED BY ',' ----不同字段以“,”打断
)LOCATION('gis051.dat') -----外部数据文件
)REJECT LIMIT UNLIMITED ----无论存在多少条报错记录,都将其忽略继续导入,默认为REJECT LIMIT 0。表示一旦有记录被拒绝,马上停止导入
4) 查询外部表
外部表创建成功后,可通过SQL语句进行查询,外部表的查询与普通表相同。
3.应用