代码之家  ›  专栏  ›  技术社区  ›  Abdullah Jibaly

在PLSQL中迭代文件

  •  1
  • Abdullah Jibaly  · 技术社区  · 15 年前

    使用plsql脚本,是否可以迭代文件夹中的二进制文件并将其作为blob插入Oracle10g中?任何例子都会受到赞赏。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Community CDub    8 年前

    这里介绍了将文件内容转换为blob的过程: Using PL/SQL how do you I get a file's contents in to a blob?

    但是,这并不能帮助您迭代一个目录中的多个文件。

    有两种可能的解决方案:

    解决方案1: SYS.DBMS_BACKUP_RESTORE.searchFiles

    您可以将搜索条件传递给这个过程,它会用结果列表填充一个全局内存中的表,然后您可以这样迭代:

    DECLARE
    
    pattern VARCHAR2(1024) := '/u01/oracle/admin/SID/udump';
    ns VARCHAR2(1024);
    
    BEGIN
    SYS.DBMS_BACKUP_RESTORE.searchFiles(pattern, ns);
    
    FOR each_file IN (SELECT FNAME_KRBMSFT AS name FROM X$KRBMSFT WHERE FNAME_KRBMSFT LIKE '%.trc') LOOP
    DBMS_OUTPUT.PUT_LINE(each_file.name);
    END LOOP;
    
    END;
    /
    

    看一个完整的例子和一个很好的解释 here .

    解决方案2:Java

    伟大的汤姆“ASKTOM”Kyt演示了如何使用Java程序对文件进行迭代。 here .