我有一些图像存储在数据库中,但我没有这些图像的名称。
有人知道如何使用 阅读这些图像utl_file.fopen()
吗?
UTL_FILE 是一个用于从 PL/SQL 包中操作 OS 文件的包。您将图像存储在数据库列中,大概是 BLOB。因此,UTL_FILE 是完全错误的工具。
事实上,数据库实际上对 BLOB 列的内容不感兴趣,而 Oracle 通常在渲染图像的功能方面并不多。您需要做的是发出查询以选择相关列并将其返回到可以显示图像的客户端工具。
“图像以 LONG 格式存储(既不是 long raw 也不是 blob)。”
那你就真的不走运了。对 LONG 的内置支持甚至比对 LOB 的支持还要少。
Oracle 很久以前就弃用 LONG 支持 LOB 正是因为 LONG 数据类型太笨拙而无法使用。LOB 是在 15 年前在 Oracle8 中引入的,确实没有理由继续使用 LONG。我很欣赏这对您目前的困境没有帮助。
顺便说一句,当你说:
“可用于在 oracle 本身中查看此图像的任何其他方法”
“Oracle 本身”是一个数据存储。检索和查看数据是客户的工作;这可以是开发人员的工具,例如 SQL*plus 或 TOAD,也可以是应用程序。我不知道任何渲染图像的IDE;如果有的话,他们极不可能将图像存储在 LONG 中。
因此,我认为您唯一的选择是自己用 C# 编写一些东西(如果那是您选择的语言)。在这种情况下,您应该阅读有关在 C# 中使用 LONGs 的答案。