外部表填充
“外部表”由与操作系统无关的专有格式(即直接路径 API)平面文件组成。由于数据是
从 Oracle 数据库提取并“卸载”到文件中的,因此,数据将以透明方式从 Oracle 内部表
示法转换为等同的 Oracle 本机外部表示法(即 DPAPI)。
可使用 CREATE TABLE AS SELECT 命令填充外部表。创建并填充了外部表之后,就不
能在外部表中添加、更新或删除行了。在外部表中修改数据的任何尝试都会失败。外部表
不能包含索引。
使用数据泵访问驱动程序可对外部表执行卸载和加载操作。
使用 ORACLE_DATAPUMP 填充外部表
本示例显示了这种新的外部表填充操作如何帮助导出由联接在一起的 EMPLOYEES 和
DEPARTMENTS 表生成的一组有选择性的记录。
由于外部表可能非常大,因此可使用并行填充操作将数据卸载到外部表。与外部表的并行
查询相反,并行填充操作的并行度受到访问驱动程序可写入的并行文件的数目所限制。在
特定时间点,决不能有多个并行执行的服务器同时写入一个文件。
LOCATION 子句中的文件数必须与指定的并行度匹配,因为每个输入/输出 (I/O) 服务器进
程都需要使用自己的文件。此时,会忽略指定的任何附加文件。如果指定的并行度没有足
够的文件数,就会通过降低并行度来匹配 LOCATION 子句中的文件数。
注:有关 ORACLE_DATAPUMP 访问驱动程序参数的详细信息,请参阅《Oracle 数据库实
用程序》指南。
使用 ORACLE_LOADER 填充外部表
ORACLE_LOADER 访问驱动程序使用 SQL*Loader 语法来创建外部表。
幻灯片中的示例假定创建了三个目录对象(extab_dat_dir、extab_bad_dir 和
extab_log_dir),并且这三个目录对象已映射到用户有权访问的现有操作系统目录。
提示:如果有大量的数据要加载,请为加载操作启用 PARALLEL:
ALTER SESSION ENABLE PARALLEL DML;
数据字典
可在以下位置查看有关外部表的信息:
• [DBA| ALL| USER]_EXTERNAL_TABLES
• [DBA| ALL| USER]_EXTERNAL_LOCATIONS
• [DBA| ALL| USER]_TABLES
数据字典
[DBA| ALL| USER]_EXTERNAL_TABLES 列出了数据库中外部表的特定属性。
[DBA| ALL| USER]_EXTERNAL_LOCATIONS 列出了外部表的数据源。
[DBA| ALL| USER]_TABLES 描述了数据库中的关系表。
[DBA| ALL| USER]_TAB_COLUMNS 描述了数据库中的表列、视图和集群。