这是最好的时代,这是最坏的时代,这是智慧的时代,这是愚蠢的时代;这是信仰的时期,这是怀疑的时期;这是光明的季节,这是黑暗的季节;这是希望之春,这是失望之冬;人们面前有着各样事物,人们面前一无所有;人们正在直登天堂;人们正在直下地狱。 我也要与时俱进了,被itpub2.0牵着尾巴,拼命的奔跑,不停的灌水...

Oracle学习系列—数据仓库部分—目录管理和外部表

上一篇 / 下一篇  2008-02-13 17:26:39 / 个人分类:数据仓库专区

目录和外部表是Oracle数据仓库中获取外部文件数据一个比较重要的管理.


|4t@A'uQ0

创建外部目录并赋予相应的读写权限

SQL>CREATE OR REPLACE DIRECTORY source_dir as 'C:/UserDefine/oracle/oradata/source';

Directory created.

SQL>CREATE OR REPLACE DIRECTORY target_dir as 'C:/UserDefine/oracle/oradata/target';

Directory created.

SQL>CREATE OR REPLACE DIRECTORY log_dir as 'C:/UserDefine/oracle/oradata/log';

Directory created.

SQL>grant read on directory source_dir to wbq;

Grant succeeded.

SQL>grant write on directory target_dir to wbq;

Grant succeeded.

SQL>grant write on directory log_dir to wbq;

Grant succeeded.

在源目录中创建并写入一个文件

declare
_&p M9Tp'm0fhandle utl_file.file_type;ITPUB个人空间x1P:yNEB7v6L^
beginITPUB个人空间Hb|{S
fhandle := utl_file.fopen('SOURCE_DIR', 'example.txt', 'w');ITPUB个人空间\@DV3c
utl_file.put_line(fhandle , 'wbq test write one');
`+L o)i{}:tOf9x[0utl_file.put_line(fhandle , 'wbq test write two');ITPUB个人空间~U R3R&O
utl_file.fclose(fhandle);
i*Y/a v/@P5I0end;

从源目录中读取一个文件

declareITPUB个人空间 a;qa}Gm
fhandleutl_file.file_type;
-s*FB-W6\0fp_buffer varchar2(4000);ITPUB个人空间5^M}an!o
beginITPUB个人空间/m8xm%u:|? IT
fhandle := utl_file.fopen ('SOURCE_DIR','example.txt', 'R');ITPUB个人空间5c$\{8kr.EO:| nt#^
utl_file.get_line (fhandle , fp_buffer );ITPUB个人空间]8OKx.SM k:kd+D y
dbms_output.put_line(fp_buffer );
"g],n%K/Au$W0utl_file.get_line (fhandle , fp_buffer );
J6ukj Lij0dbms_output.put_line(fp_buffer );
p(rl l&A'?0utl_file.fclose(fhandle);
~ x5CF%RWz0end;

通过数据字典查看目录

SQL> select * from dba_directories;

OWNERDIRECTORY_NAMEDIRECTORY_PATH

------------------------------ ------------------------------ -------------

SYSMEDIA_DIRC:/UserDefine/oracle/ora92/demo/schema/product_media/

SYSLOG_FILE_DIRC:/UserDefine/oracle/ora92/demo/schema/log/

SYSDATA_FILE_DIRC:/UserDefine/oracle/ora92/demo/schema/sales_history/

SYSSOURCE_DIRC:/UserDefine/oracle/oradata/source

SYSTARGET_DIRC:/UserDefine/oracle/oradata/target

SYSLOG_DIRC:/UserDefine/oracle/oradata/log

6 rows selected

在源目录中创建一个Student.txt的文件

Create a Text File, C:/UserDefine/oracle/oradata/source/student.txt, Content is below

wbqEnglish70

wbqMaths75

wbqHistory90

定义外部表并读取相应的数据

SQL> CREATE TABLE Student

2(

3StudNameVARCHAR2(20),

4ExamNameVARCHAR2(20),

5ScoreINTEGER

6)

7ORGANIZATION EXTERNAL

8(

9TYPE ORACLE_LOADER

10DEFAULT DIRECTORY source_dir

11ACCESS PARAMETERS

12(

13records delimited by newline

14badfile log_dir:'bad_student.dat'

15logfile log_dir:'student.log'

16fields terminated by ','

17missing field values are null

18(

19StudName, ExamName, Score )

20)

21LOCATION ('student.txt')

22)

23REJECT LIMIT UNLIMITED;

Table created

SQL> select * from student;

STUDNAMEEXAMNAMESCORE

-------------------- -------------------- ---------------------------------------

wbqEnglish70

wbqMaths75

wbqHistory90

SQL>


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-07  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 25145
  • 日志数: 66
  • 建立时间: 2007-12-07
  • 更新时间: 2008-09-28

RSS订阅

Open Toolbar