【发布时间】: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