目录和外部表是Oracle数据仓库中获取外部文件数据一个比较重要的管理.
创建外部目录并赋予相应的读写权限
|
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 |
从源目录中读取一个文件
|
declare |
通过数据字典查看目录
|
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH ------------------------------ ------------------------------ ------------- SYS MEDIA_DIR C:/UserDefine/oracle/ora92/demo/schema/product_media/ SYS LOG_FILE_DIR C:/UserDefine/oracle/ora92/demo/schema/log/ SYS DATA_FILE_DIR C:/UserDefine/oracle/ora92/demo/schema/sales_history/ SYS SOURCE_DIR C:/UserDefine/oracle/oradata/source SYS TARGET_DIR C:/UserDefine/oracle/oradata/target SYS LOG_DIR C:/UserDefine/oracle/oradata/log
6 rows selected |
在源目录中创建一个Student.txt的文件
|
Create a Text File, C:/UserDefine/oracle/oradata/source/student.txt, Content is below wbq English 70 wbq Maths 75 wbq History 90 |
定义外部表并读取相应的数据
|
SQL> CREATE TABLE Student 2 ( 3 StudName VARCHAR2(20), 4 ExamName VARCHAR2(20), 5 Score INTEGER 6 ) 7 ORGANIZATION EXTERNAL 8 ( 9 TYPE ORACLE_LOADER 10 DEFAULT DIRECTORY source_dir 11 ACCESS PARAMETERS 12 ( 13 records delimited by newline 14 badfile log_dir:'bad_student.dat' 15 logfile log_dir:'student.log' 16 fields terminated by ',' 17 missing field values are null 18 ( 19 StudName, ExamName, Score ) 20 ) 21 LOCATION ('student.txt') 22 ) 23 REJECT LIMIT UNLIMITED;
Table created
SQL> select * from student;
STUDNAME EXAMNAME SCORE -------------------- -------------------- --------------------------------------- wbq English 70 wbq Maths 75 wbq History 90
SQL> |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/6517/viewspace-145530/ ,如需转载,请注明出处,否则将追究法律责任。