第一步:建立路径,并且要保证这个路径可以被oracle读写权限(因为oracle会在这个路径下写外部表的日志和错误的数据)
mkdir /home/oracle/
将需要做外部表的数据(test.txt,test2.txt)放到该目录下,可以放多个
--copy test.txt,test2.txt to /home/oracle/
第二步:dba用户执行,创建directory并且授权给oracle的schema。
create directory test as '/home/oracle/';
grant read on directory test to test1;
grant write on directory test to test1;
--登录teset1,执行用户创建external table
create table resources_ext
(
GMT_CREATE date,
GMT_MODIFIED date,
ID number,
TYPE VARCHAR2(32),
NAME VARCHAR2(256),
VALUE VARCHAR2(256)
) organization external
(type oracle_loader
default directory test
access parameters
(
records delimited by newline
fields terminated by ','
missing field values are null
(
GMT_CREATE date "yyyy-mm-dd hh24:mi:ss"
,GMT_MODIFIED date "yyyy-mm-dd hh24:mi:ss"
,ID
,TYPE
,VALUE
,NAME
)
) location ('test.txt')
);
GMT_CREATE date,
GMT_MODIFIED date,
ID number,
TYPE VARCHAR2(32),
NAME VARCHAR2(256),
VALUE VARCHAR2(256)
这里是指定目标表结构的字段顺序和类型,
GMT_CREATE date "yyyy-mm-dd hh24:mi:ss" ----此处可以直接将文件中的字符直接转化成date型。
,GMT_MODIFIED date "yyyy-mm-dd hh24:mi:ss"
,ID
,TYPE
,VALUE
,NAME
这个是指定那个字段对应文件中的哪一列,他的顺序决定了向表中写数据的顺序。
外部表不能修改和插入。
当外部表建立完成后,可以通过dba_external_tables和dba_external_locations查看相应的信息,
没有创建时是看不到的。
如果有错误,可以在第一步建立的路径中看到有以外部表名字和一串数字命名的日志和错误的数据信息(两个文件),内容很详细基本上可以定位是什么原因。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7312700/viewspace-1005052/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7312700/viewspace-1005052/
本文详细介绍如何在Oracle数据库中创建外部表,包括设置路径、创建目录、授权及定义外部表结构等步骤。通过实例演示了如何指定数据文件位置、字段映射及数据格式。
850

被折叠的 条评论
为什么被折叠?



