如何查询使用CREATE DIRECTORY创建的Oracle逻辑目录中的文件名?

时间:2015-10-06 12:32:16

标签: oracle oracle11g

如何使用SQL或PLSQL进行查询,以便在使用CREATE DIRECTORY创建的Oracle逻辑目录中获取文件名?

假设执行以下脚本来创建目录:

create or replace directory my_directory as '/var/tmp/mydirectory';

使用SQL或PLSQL,如何获取目录my_directory中文件的文件名?如果目录包含文件my_file_1.txtmy_file_2.txt,我应该获得2行。

我不需要文件的内容,只需要文件名。

1 个答案:

答案 0 :(得分:3)

不幸的是,没有一个非常简单的PL / SQL API。有一天,这将在utl_file包中。

一种选择是编写一个填充临时表的小型Java存储过程。这是一个AskTom example of a Java stored procedure that lists the files in a directory

还有一个使用dbms_backup_restore包的技巧,但这需要您查询技术上未记录的x$表。以下是using dbms_backup_restore to list files in a directory的示例。

就个人而言,Java存储过程使我更容易阅读,更容易保护,并且更有可能继续前进。但是,如果您需要纯PL / SQL解决方案,可以查看dbms_backup_restore