对Oracle外部表的简单介绍

发表于:2010-5-24 10:12

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  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可以把数据库中的数据导出到外部表对应的多个文件中去。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号