这是最好的时代,这是最坏的时代,这是智慧的时代,这是愚蠢的时代;这是信仰的时期,这是怀疑的时期;这是光明的季节,这是黑暗的季节;这是希望之春,这是失望之冬;人们面前有着各样事物,人们面前一无所有;人们正在直登天堂;人们正在直下地狱。
我也要与时俱进了,被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'); `+Lo)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*F B-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.SMk:kd+D
y dbms_output.put_line(fp_buffer ); "g],n%K/Au$W0utl_file.get_line (fhandle , fp_buffer ); J6ukjLij0dbms_output.put_line(fp_buffer ); p(rll&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: