DATAFILES 子句

DATAFILES 子句指定当您使用外部表时打开的操作系统文件或管道。

DATAFILES 子句
元素 描述 限制 语法
fixed_path 在外部表的定义中的输入或输出文件的路径名 请参阅随该表之后的注意事项 必须遵循操作系统规则
formatted_path 使用模式匹配字符的格式化的路径名 请参阅随该表之后的注意事项 必须遵循操作系统规则

T数据库服务器不会验证存在于指定的 fixed_pathformatted_path 上的任何文件或管道,此指定的管道是打开的,且用户具有存取该文件系统的权限。然而,如果当数据库服务器尝试读或写到外部表时,指定的管道正在被使用,即是打开的,随后外部表上的操作会失败,除非该路径是有效的。

有关 DATAFILES 子句的示例,请参阅外部表示例

关键字
描述
CLOBDIR
指定存储 CLOB 文件的服务器的目录。
BLOBDIR
指定存储 BLOB 文件的服务器的目录。当创建查询时,在 CLOBDIR 之后的 BLOBDIR 之后,指定 DISK 。如果省略了 BLOBDIR ,则 BLOB 文件存储于 DISK 子句指定的相同的目录。如果 BLOBDIR 和 CLOBDIR 都被省略,则会为 BLOB 或 CLOB 列创建一个新的文件,并将其存储于 DISK 子句指定的目录下。

以下示例中,存储在 /work1/exttab1.dat 中的行拥有位于 /work1/blobdir1 的 BLOBs 和位于 /work1/clobdir1 目录下的 CLOBs 。

存储在 /work1/exttab2.dat 中的行拥有位于 /work1 目录中的 BLOBs 和位于 /work1/clobdir2 目录中的 CLOBs。因为省略了 BLOBDIR 子句,所以 BLOBs 存储在存储 exttab2.dat 的目录中。

存储在 /work1/exttab3.dat 中的行拥有位于 /work1 目录中的 BLOBs 和 CLOBs ,因为 BLOBDIR 和 CLOBDIR 都被省略了。

CREATE EXTERNAL TABLE exttab (
                    id    SERIAL,
                    lobc  CLOB,
                    lobb  BLOB)
                    USING (DATAFILES(
                    "DISK:/work1/exttab1.dat;BLOBDIR:/work1/blobdir1;CLOBDIR:/work1/clobdir1",
                    "DISK:/work1/exttab2.dat;CLOBDIR:/work1/clobdir2", 
                    "DISK:/work1/exttab3.dat"),
                    DELIMITER '|');