使用 Oracle 外部表
Oracle 外部表是具有不在数据库中数据的表。这些数据位于数据库可以访问的外部文件中。使用外部表,您可以访问数据而无需将其加载到数据库中。有关外部表的更多信息,请参阅 Oracle 文档中的管理外部表
使用 Amazon RDS,您可以将外部表文件存储在目录对象中。您可以创建目录对象,或者使用 Oracle 数据库中预定义的目录对象,例如 DATA_PUMP_DIR 目录。有关创建目录对象的信息,请参阅在主数据存储空间中创建和删除目录。您可以查询 ALL_DIRECTORIES 视图来列出您的 Amazon RDS Oracle 数据库实例的目录对象。
注意
目录对象指向由实例使用的主数据存储空间 (Amazon EBS 卷)。—包括数据文件、重做日志、审核、跟踪和其他文件在内—所用的空间均计入分配的存储中。
您可以使用 DBMS_FILE_TRANSFER
移动外部数据文件之后,您可以用它来创建外部表。以下示例创建使用 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
文件中。