在 PLSQL 中迭代文件

发布于 2024-09-02 17:38:06 字数 73 浏览 3 评论 0原文

使用 PLSQL 脚本,是否可以迭代文件夹中的二进制文件并将它们作为 BLOB 插入 Oracle 10g 中?任何例子将不胜感激。

Using a PLSQL script, is it possible to iterate over binary files in a folder and insert them as a BLOB in Oracle 10g? Any examples would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一个人练习一个人 2024-09-09 17:38:06

这里介绍了将文件内容转换为 blob:如何使用 PL/SQL 将文件的内容放入 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;
/

请在此处查看完整示例以及出色的解释。

解决方案 2:Java

伟大的 Tom“AskTom”Kyte 展示了如何使用 Java 过程迭代文件 此处

Converting a file's contents to a blob is covered here: Using PL/SQL how do you I get a file's contents in to a blob?

However this doesn't help you iterate over multiple files in a directory.

Two possible solutions for this:

Solution 1: SYS.DBMS_BACKUP_RESTORE.searchFiles

You can pass this procedure your search criteria and it populates a global in-memory table with the list of results over which you can then iterate like so:

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;
/

See a full example complete with an excellent explanation here.

Solution 2: Java

The great Tom "AskTom" Kyte shows how to iterate over files using a Java procedure here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文