使用 Oracle 外部表 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Oracle 外部表

Oracle 外部表是具有不在数据库中数据的表。这些数据位于数据库可以访问的外部文件中。使用外部表,您可以访问数据而无需将其加载到数据库中。有关外部表的更多信息,请参阅 Oracle 文档中的管理外部表

使用 Amazon RDS,您可以将外部表文件存储在目录对象中。您可以创建目录对象,或者使用 Oracle 数据库中预定义的目录对象,例如 DATA_PUMP_DIR 目录。有关创建目录对象的信息,请参阅在主数据存储空间中创建和删除目录。您可以查询 ALL_DIRECTORIES 视图来列出您的 Amazon RDS Oracle 数据库实例的目录对象。

注意

目录对象指向由实例使用的主数据存储空间 (Amazon EBS 卷)。—包括数据文件、重做日志、审核、跟踪和其他文件在内—所用的空间均计入分配的存储中。

您可以使用 DBMS_FILE_TRANSFER 包或 UTL_FILE 包,将外部数据文件从一个 Oracle 数据库移动到另一个。外部数据文件从源数据库上的目录移至目标数据库上的指定目录中。有关使用 DBMS_FILE_TRANSFER 的信息,请参阅 使用 Oracle Data Pump 导入

移动外部数据文件之后,您可以用它来创建外部表。以下示例创建使用 USER_DIR1 目录中 emp_xt_file1.txt 文件的外部表。

CREATE TABLE emp_xt ( emp_id NUMBER, first_name VARCHAR2(50), last_name VARCHAR2(50), user_name VARCHAR2(20) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY USER_DIR1 ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE FIELDS TERMINATED BY ',' MISSING FIELD VALUES ARE NULL (emp_id,first_name,last_name,user_name) ) LOCATION ('emp_xt_file1.txt') ) PARALLEL REJECT LIMIT UNLIMITED;

假设您要将位于 Amazon RDS Oracle 数据库实例中的数据移动到外部数据文件中。在这种情况下,您可以通过创建外部表并从数据库中的表选择数据来填充外部数据文件。例如,以下 SQL 语句通过查询数据库中的 orders_xt 表创建 orders 外部表。

CREATE TABLE orders_xt ORGANIZATION EXTERNAL ( TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION ('orders_xt.dmp') ) AS SELECT * FROM orders;

在此示例中,数据填充到 DATA_PUMP_DIR 目录的 orders_xt.dmp 文件中。