Oracle数据库有关外部表创建
一、创建目录与授权
1、创建3个目录,分别用于存放数据源文件、日志文件与坏记录文件
create or replace directory datadir as ‘D:\Oracle\data’;
create or replace directory logdir as ‘D:\Oracle\log’;
create or replace directory baddir as ‘D:\Oracle\bad’;
2、将这些目录的想应权限授权给cr_17用户
grant read on directory datadir to cr_17;
grant write on directory logdir to cr_17;
grant write on directory baddir to cr_17;
二、.txt文件的创建
.txt文件的创建其每行、每个字段间的分隔符必须一样,且要保障不出错误,
否则会出现查找错误与"查找未选定行"的问题
- 建议用excle转成.txt文件 ,这样可以大幅减少.txt文件出错的现象
- 其中分隔符建议使用一个" “(一个空格),”,“或”|"等符号,这样可以减少分隔符错误的发生。
- .txt文件创建完后,须保存在D:\cr_17\data目录下。
三、创建外部表
4、创建外部表
create table cr_17.books
(
上市日期 varchar2(6),
ISBN varchar2(20),
书名 varchar2(50),
定价 number(4,2),
出版社名称 varchar2(20),
作者 varchar2(30)
)
organization external
(
type oracle_loader --访问驱动
default directory datadir --默认目录
access parameters --访问参数
(
records delimited by newline --每行记录分隔符
badfile baddir:‘empxt%a_p.bad’ --bad文件
logfile logdir:‘empxt%a_p.log’ --log文件
fields terminated by ‘,’ --字段分隔符
missing field values are null --空值处理
(
上市日期,ISBN,书名,定价,出版社名称,作者
)
)
location (‘cr_17.txt’) --数据源文件名称
)
parallel --并行查询
reject limit unlimited;
四、通过查询检查外部表是否创建成功
col 书名 format A18
col ISBN format A14
col 作者 format A6 --使表格看起来更美观
select * from cr_17.books;