Windows中使用Oracle外部表导入数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows中使用Oracle外部表导入数据
Oracle 数据库的外部表,是指不在数据库中的表,也称“虚表”,对外部表可以使用标准SQL 语句进行装载,而不需要先将外部表中的数据装载进数据库中。
只读:由于外部表实际上是磁盘中的文件,所以不能通过SQL语句对外部表文件进行修改。对于外部表,实际使用中可以方便的用来加载数据,比如初始化用户数据,或者将历史数据报表使用外部表加载用来作相关临时性分析,而不需要程序来提供导入支持。
闲话少说,按照下面的例子操练之后,相信大家都掌握外部表的使用原理,在具体使用中融会贯通。(在linux中的使用方法在此文中不作描述,原理相同)
--创建目录
create directory test_dir as'E:\external_table';
--sys登录,授权目录给指定用户
grant read,write on directory test_dir to test_user;
--使用被授权的用户test_user创建外部表:
create table test_table
(empno int,
ename varchar2(20),
sal int,
deptno int)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY test_dir
ACCESS Parameters
(
RECORDS DELIMITED BY NEWLINE
badfile 'bad_test.txt'
LOGFILE'log_test.txt'
FIELDS TERMINATED BY','
MISSING FIELD VALUES ARE NULL
(empno,ename,sal,deptno)
)
LOCATION('t1.txt')
)
;
--查询外部表
select * from test_table;
--查看外部表的两个字典视图
select * from dba_external_tables;
select * from dba_external_locations;
SELECT OWNER, TABLE_NAME, DEFAULT_DIRECTORY_NAME, ACCESS_PARAMETERS
FROM DBA_EXTERNAL_TABLES;
--将外部表数据变成内部表,可以进行任意编辑,或者通过SQL语句将数据插入到你需要的表中create table aaa as select * from test_table;
select * from aaa;
--删除外部表目录,外部表即不存在
drop directory test_dir;