ORACLE的External Tables的简单介绍


External Tables是对sql*loader的一个补充,它使你像访问数据库里的数据一样访问外部源数据。

  1:外部表怎么被创建

  CREATE TABLE...ORGANIZATION EXTERNAL

  TYPE 指定外部表访问驱动类型。

  两种选择。第一:ORACLE_LOADER ,这种类型只能完成数据装入,数据只能从文本数据文件中load

  第二:ORACLE_DATAPUMP ,这种类型可以装入和卸出数据。数据必须来自dump files。

  DEFAULT DIRECTORY 指定文件的存放路径,路径是通过directory指定,不是直接的操作系统路径。

  ACCESS PARAMETERS。

  LOCATION 是指定DIRECTORY地址中的文件。

  SQL> CREATE TABLE emp_load

  2    (employee_number      CHAR(5),

  3     employee_dob         CHAR(20),

  4     employee_last_name   CHAR(20),

  5     employee_first_name  CHAR(15),

  6     employee_middle_name CHAR(15),

  7     employee_hire_date   DATE)

  8  ORGANIZATION EXTERNAL

  9    (TYPE ORACLE_LOADER

  10     DEFAULT DIRECTORY def_dir1

  11     ACCESS PARAMETERS

  12       (RECORDS DELIMITED BY NEWLINE

  13        FIELDS (employee_number      CHAR(2),

  14                employee_dob         CHAR(20),

  15                employee_last_name   CHAR(18),

  16                employee_first_name  CHAR(11),

  17                employee_middle_name CHAR(11),

  18                employee_hire_date   CHAR(10) date_format DATE mask "mm/dd/yyyy"

  19               )

  20       )

  21     LOCATION ('info.dat')

  22    );

  Table created.

  然后:

  SQL> INSERT INTO emp (emp_no,

  2                   first_name,

  3                   middle_initial,

  4                   last_name,

  5                   hire_date,

  6                   dob)

  7  (SELECT employee_number,

  8          employee_first_name,

  9          substr(employee_middle_name, 1, 1),

  10          employee_last_name,

  11          employee_hire_date,

  12          to_date(employee_dob,'month, dd, yyyy')

  13  FROM emp_load);

  这样数据就已经LOAD到emp表中了

  2:外部表中的并行访问

  a)使用ORACLE_LOADER的并行访问

  ORACLE_LOADER访问驱动是把大的数据文件分成小的部分去处理。

  b)使用ORACLE_DATAPUMP的并行访问

  ORACLE_DATAPUMP可以把数据库中的数据导出到外部表对应的多个文件中去。

  ORACLE_DATAPUMP还可以把多个DUMP文件


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3