【问题标题】:ORA 00932: expected NUMBER got BLOB error when trying to view table contentORA 00932: 尝试查看表内容时,预期 NUMBER 出现 BLOB 错误
【发布时间】:2012-07-28 20:30:56
【问题描述】:

我编写了一个 servlet 程序来将图像上传到 Oracle 表。我使用的是 Oracle 10g 版本。

我使用

创建了表格
create table insertimage( image BLOB);

表创建成功。我的 servlet 显示图片上传成功。即使我使用

删除
delete from insertimage;

显示成功删除行。

但是当我尝试使用

查看表格内容时
select * from insertimage;

它给了我

ORA-00932: inconsistent datatypes: expected NUMBER got BLOB error. 

那么如何在Oracle表中直接查看图片是否上传成功?

【问题讨论】:

  • 不,您无法在 Oracle 的 SQL 提示符下查看 BLOB 数据。它包含大量的二进制数据(Binary Large OBject)。
  • 那么如何查看呢?我听说第三方 PL/SQL 开发者应用程序可以让我们直接查看图像。这是真的吗?如果是,请推荐一个。
  • 您可能不需要需要这样做。您应该将该 BLOB 数据转换为 Servlet/JSP/JSF 或您正在使用的任何前端中的实际图像,并将其显示在浏览器上。有没有必要直接在Oracle提示下查询这个BLOB类型? (在 MySql 中,你可以这样做,它会显示大量的二进制数据)。此外,完全不建议将图像以 BLOB 类型的形式存储到数据库中。您应该将所有图像存储到一个目录中,并将其相关路径存储到数据库表中。
  • 其实我已经尝试过这样做并且面临问题。你可以查看here
  • 这不是使用 Servlet(或 JSP、JSTL/EL、JSF)上传和检索图像的方式(注意您之前的 question)。您需要更多地研究如何上传和检索图像。请参阅this 问题。您需要使用“Apache Common File Upload”API。请参阅 this 博客,您也可以在其中获取此 API。

标签: sql oracle oracle10g blob


【解决方案1】:

有很多第三方 IDE 可供您使用 - 一个不错的免费 IDE 是 Oracle 自己的 SQL Developer

双击对象树中的表。在“数据”选项卡上,单击带有 BLOB 列的“...”按钮,然后单击“查看为图像”复选框

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    相关资源
    最近更新 更多