DATAFILES 子句指定当您使用外部表时打开的操作系统文件或管道。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
fixed_path | 在外部表的定义中的输入或输出文件的路径名 | 请参阅随该表之后的注意事项 | 必须遵循操作系统规则 |
formatted_path | 使用模式匹配字符的格式化的路径名 | 请参阅随该表之后的注意事项 | 必须遵循操作系统规则 |
T数据库服务器不会验证存在于指定的 fixed_path 或 formatted_path 上的任何文件或管道,此指定的管道是打开的,且用户具有存取该文件系统的权限。然而,如果当数据库服务器尝试读或写到外部表时,指定的管道正在被使用,即是打开的,随后外部表上的操作会失败,除非该路径是有效的。
有关 DATAFILES 子句的示例,请参阅外部表示例。
以下示例中,存储在 /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 '|');