Oracle External Table (1)
来源:互联网 发布:水滴wifi破解软件 编辑:程序博客网 时间:2024/04/19 01:23
External Table是由create table ... organization external语句创建的。4个主要参数:type, default directory, access parameters, location
有两种类型oracle_loader和oracle_datapump。
oracle_loader是默认的,它将数据从外部表导入到内部表。这些数据只能来自文本数据文件。该方法不能将数据从内部表导出到外部表。
oracle_datapump可以导入导出,只能是二进制的dump文件。
在数据文件与外部表之间的转换错误只会导致该行被忽略;而外部表与数据库表之间的转换错误会导致整个导入失败。
外部表的一些限制:
# 不支持含有加密字段(Encrypted column)的导入与导出。
# 外部表不知道保存在数据库中的数据。
# 外部表不知道数据是如何在外部数据源中保存的。这是access parameter的功能。
# 外部表不能导入数据到LONG字段。
一个简单的例子:
1. 创建一个数据文件/tmp/info.dat
56november, 15, 1980 baker mary alice 09/01/2004
87december, 20, 1970 roper lisa marie 01/01/2002
2. 创建一个directory并授予read/write on权限给test用户
create directory def_dir as '/tmp';
grant read,write on directory def_dir to test;
3. 用test登录并创建一个普通表emp
CREATE TABLE emp (emp_no CHAR(6), last_name CHAR(25), first_name CHAR(20), middle_initial CHAR(1), hire_date DATE, dob DATE);
4. 用test创建一个external table emp_load
create table emp_load
(employee_number char(5),
employee_dob char(20),
employee_last_name char(20),
employee_first_name char(15),
employee_middle_name char(15),
employee_hire_date date)
organization external
(type oracle_loader
default directory def_dir
access parameters
(records delimited by newline
fields (employee_number char(2),
employee_dob char(20),
employee_last_name char(18),
employee_first_name char(11),
employee_middle_name char(11),
employee_hire_date char(10) date_format date mask "mm/dd/yyyy"
)
)
location ('info.dat')
);
5. 从外部表emp_load导入数据到内部表emp
insert into emp (emp_no, first_name, middle_initial, last_name, hire_date, dob)
(select employee_number,
employee_first_name,
substr(employee_middle_name, 1, 1),
employee_last_name,
employee_hire_date,
to_date(employee_dob, 'month, dd, yyyy')
from emp_load);
6. 查询结果
select * from emp;
EMP_NO LAST_NAME FIRST_NAME M HIRE_DATE DOB
------ ------------------------- -------------------- - ------------ ------------
56 baker mary a 01-SEP-04 15-NOV-80
87 roper lisa m 01-JAN-02 20-DEC-70
有两种类型oracle_loader和oracle_datapump。
oracle_loader是默认的,它将数据从外部表导入到内部表。这些数据只能来自文本数据文件。该方法不能将数据从内部表导出到外部表。
oracle_datapump可以导入导出,只能是二进制的dump文件。
在数据文件与外部表之间的转换错误只会导致该行被忽略;而外部表与数据库表之间的转换错误会导致整个导入失败。
外部表的一些限制:
# 不支持含有加密字段(Encrypted column)的导入与导出。
# 外部表不知道保存在数据库中的数据。
# 外部表不知道数据是如何在外部数据源中保存的。这是access parameter的功能。
# 外部表不能导入数据到LONG字段。
一个简单的例子:
1. 创建一个数据文件/tmp/info.dat
56november, 15, 1980 baker mary alice 09/01/2004
87december, 20, 1970 roper lisa marie 01/01/2002
2. 创建一个directory并授予read/write on权限给test用户
create directory def_dir as '/tmp';
grant read,write on directory def_dir to test;
3. 用test登录并创建一个普通表emp
CREATE TABLE emp (emp_no CHAR(6), last_name CHAR(25), first_name CHAR(20), middle_initial CHAR(1), hire_date DATE, dob DATE);
4. 用test创建一个external table emp_load
create table emp_load
(employee_number char(5),
employee_dob char(20),
employee_last_name char(20),
employee_first_name char(15),
employee_middle_name char(15),
employee_hire_date date)
organization external
(type oracle_loader
default directory def_dir
access parameters
(records delimited by newline
fields (employee_number char(2),
employee_dob char(20),
employee_last_name char(18),
employee_first_name char(11),
employee_middle_name char(11),
employee_hire_date char(10) date_format date mask "mm/dd/yyyy"
)
)
location ('info.dat')
);
5. 从外部表emp_load导入数据到内部表emp
insert into emp (emp_no, first_name, middle_initial, last_name, hire_date, dob)
(select employee_number,
employee_first_name,
substr(employee_middle_name, 1, 1),
employee_last_name,
employee_hire_date,
to_date(employee_dob, 'month, dd, yyyy')
from emp_load);
6. 查询结果
select * from emp;
EMP_NO LAST_NAME FIRST_NAME M HIRE_DATE DOB
------ ------------------------- -------------------- - ------------ ------------
56 baker mary a 01-SEP-04 15-NOV-80
87 roper lisa m 01-JAN-02 20-DEC-70
- Oracle External Table (1)
- oracle外表(external table)
- oracle external table
- Oracle external table
- Oracle外部表 External Table
- Oracle external table & SQL*Loader
- Oracle External Table Population小记
- Oracle外部表 External Table
- oracle 外部表 external table
- external table sample : from oracle document
- Oracle 之 外部表 external table
- oracle中创建外表(external table)
- 学习掌握oracle外表(external table)
- external table
- external table
- Oracle中的external table和 materialized view学习
- Oracle 外部表 External Table(一)[转+实践]
- Using Oracle Data Pump to create an external table
- 3种减少Flex文件大小的方法
- Visual Studio 2005下编写DLL程序
- 一个以引用作为参数的函数无法接收一个常量作为实参
- java问号表达式用法
- [android]Application Fundamentals
- Oracle External Table (1)
- {php 字符串函数}
- 模糊查询的优化
- Android演示使用PULL方式解析XML文件
- POCSAG编码和BCH(31,21)校验详解
- hdu 1542 poj/pku 1151(线段树求面积并)
- VIM 手册
- zoj 3538 Arrange the Schedule
- 深度心理学