如何使用SQL或PLSQL进行查询,以便在使用CREATE DIRECTORY创建的Oracle逻辑目录中获取文件名?
假设执行以下脚本来创建目录:
create or replace directory my_directory as '/var/tmp/mydirectory';
使用SQL或PLSQL,如何获取目录my_directory
中文件的文件名?如果目录包含文件my_file_1.txt
和my_file_2.txt
,我应该获得2行。
我不需要文件的内容,只需要文件名。
答案 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
。