【问题标题】:Is there any easy way to save BLOB into client-side file system in Oracle?有什么简单的方法可以将 BLOB 保存到 Oracle 的客户端文件系统中?
【发布时间】:2010-08-07 08:59:37
【问题描述】:

是否有任何简单的方法可以仅使用标准 Oracle 实用程序(例如 sqlplus 或 sqlldr)将 BLOB 作为二进制文件保存到客户端文件系统中?

我已经看过UTL_FILE 包,但实际上我有两个问题:

  1. 我怀疑它是否可以与客户端文件系统一起使用。
  2. 我没有权限在保存 BLOB 的架构中使用 CREATE DIRECTORY,因此我根本无法使用 UTL_FILE

另外,我知道我可以用任何语言(例如 Java)编写一些国产实用程序;连接到 Oracle,选择我的 BLOB 并将其保存为二进制格式。但在这样做之前,我会寻找一些更简单的方法。

【问题讨论】:

    标签: oracle plsql


    【解决方案1】:

    您真的想要一个将 BLOB(例如 winword.exe)写入本地 PC 的数据库吗?这是一种有意保护的东西。

    它是非常受客户端驱动的,因此最好的起点是本地计算机上运行的任何内容。我会使用 Java 例程,或者如果您已经运行了 APEX,则可以使用一个简单的程序将 BLOB 通过浏览器推出并让浏览器提示您保存它。

    【讨论】:

    • 我不希望数据库本身(服务器端)写入 BLOB。我希望在我的 PC 上安装 Oracle 客户端的一些实用程序来连接 Oracle 并保存 BLOB。例如sqlldr 能够将本地文件作为 BLOB 上传到数据库中,但遗憾的是它无法将这些 BLOB 下载回来并将其保存为文件。不幸的是,浏览器不是我的选择,因为我需要自动保存一个 BLOB(每次在 DB 中更改时),而不需要任何用户的努力。
    • 您评论中的关键词是“自动...当它在 DB 中更改时”。没有客户端程序会神奇地知道数据何时更改。如果更改 BLOB 时客户端(PC/软件)未启动,会发生什么情况?这是您需要设计然后编写的程序
    • 在我的情况下,可以在每个我们的 cron 中覆盖客户端上的文件。如果更改 BLOB,文件将被新值覆盖。
    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多