oracle - 使用 UTL_FILE.FRemove 从服务器删除文件而不知道文件名

标签 oracle stored-procedures plsql wildcard utl-file

我是一名报告分析师,他被要求学习一些 PL/SQL 来自动化某些流程。所以我快要完成了,但有一步挡住了。我有一个包

  1. 加载包含我编写的查询的表。
  2. 将该表中的结果导出到服务器上的 .txt 文件,并将 current_date 添加到文件名中。

我尝试删除它使用通配符创建的 3 个文件,但我不断收到诸如“vendor_file.ia.*.txt 未定义”之类的错误:

  • file_location 是我的路径

我可以毫无问题地删除它:

    utl_file.fremove(file_location,'vendor_file.ia.09.02.2015.txt');
    utl_file.fremove(file_location,'vendor_file.il.09.02.2015.txt');
    utl_file.fremove(file_location,'vendor_file.sd.09.02.2015.txt'); 

但显然这不会在下个月运行时删除它。那么我是否缺少一个简单的通配符来搜索“vendor_file.ia.*”?该语法在 Oracle 中是否可见?

如果我没有提供足够的信息,请告诉我!

非常感谢!

最佳答案

这可用于从 Oracle 目录中清除多个文件:

begin
    for i in (
        select filename from (select * from 
    table(RDSADMIN.RDS_FILE_UTIL.LISTDIR('DIR_NAME')) order by mtime) where filename like 
    'backup%')
    loop
        UTL_FILE.FREMOVE ('DIR_NAME', i.filename );
    end loop;
end;

关于oracle - 使用 UTL_FILE.FRemove 从服务器删除文件而不知道文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32363099/

相关文章:

sql - ORACLE 更新后触发 : solving ORA-04091 mutating table error

sql - 为什么我不能在 SQL 语句中调用我的函数?

oracle - 为什么此查询会导致 Oracle 中的 Merge Cartesian Join

c# - LINQ-to-SQL 中的存储过程

sql - pl/sql函数调用了多少次?

mysql - 在 MySql Workbench 中测试存储过程

sql-server - 在 SQL 存储过程中用字符串中的另一个子字符串替换特定子字符串

php - 如何将Oracle 10G数据放入PHP数组中,然后将其转换为JavaScript数组?

database - 使用不带 Service_Name 的 SID 将 .NET Core WebApp 连接到 Oracle

Oracle JDBC 属性