Java 不一致的数据类型:预期数量为个BLOB

Java 不一致的数据类型:预期数量为个BLOB,java,sql,eclipse,oracle,Java,Sql,Eclipse,Oracle,我用Java编写了一个程序,它将一个名称字段和一个图像存储到oracle数据库中 我正在使用Eclipse开普勒IDE 如果我正在运行应用程序,则会有1条记录受到影响 然后,在尝试使用查看oracle数据库中的结果时 从imagetable1中选择* 我得到的错误如下 不一致的数据类型:预期数量为个BLOB 我确信我在代码中没有犯任何错误 所以,谁能告诉我解决这个问题的方法是什么,这意味着我将如何在oracle数据库中看到结果 我写的代码: public class InsertImage {

我用Java编写了一个程序,它将一个名称字段和一个图像存储到oracle数据库中

我正在使用Eclipse开普勒IDE

如果我正在运行应用程序,则会有1条记录受到影响

然后,在尝试使用查看oracle数据库中的结果时

从imagetable1中选择*

我得到的错误如下

不一致的数据类型:预期数量为个BLOB

我确信我在代码中没有犯任何错误

所以,谁能告诉我解决这个问题的方法是什么,这意味着我将如何在oracle数据库中看到结果

我写的代码:

public class InsertImage 
{
    public static void main(String args[]) throws SQLException, IOException
    {
          try {
              Class.forName("oracle.jdbc.driver.OracleDriver");
              Connection con=DriverManager.getConnection(
                       "jdbc:oracle:thin:@localhost:1521:xe","system","askme@123");
              PreparedStatement ps=con.prepareStatement("insert into imagetable1 
                                  values(?,?)");

              ps.setString(1,"Binay");
              FileInputStream fin=new FileInputStream("D:\\Binay\\1355.jpg");
              ps.setBinaryStream(2, fin,fin.available());
              int i=ps.executeUpdate();

              System.out.print(i+"records affeced");
              con.close();
          } 
          catch (ClassNotFoundException e) {
             e.printStackTrace();
         }
    }

图像的BLOB似乎正确,因此选择处理错误;信息技术该代码是罪魁祸首
fin.available()
可以省略。显示执行和处理
select
的代码会有所帮助。除非你只是直接在你的客户机上做,比如SQL开发者;您希望如何显示二进制数据?您可以查询BLOB字段的大小,以便与原始文件进行比较?如果我正在从imagetable1中选择名称,那么它将提前显示,如果我正在从imagetable1中选择照片,那么我将错误作为不一致的数据类型得到:预期数量得到我创建为创建表imagetable1的BLOB表(名称varchar(10),photo BLOB)但您在哪里这样做呢?从Java、从SQLPlus、从其他客户机?“正确显示”对于BLOB值意味着什么?当我尝试此操作时,您的代码正在正确插入(如预期的那样),并且通过SQLPlus查询显示文件的十六进制表示形式,例如
FFD8FFE000104A4649460001020000640064…
。那你有什么不同的做法,还是不告诉我们?您是通过Java查询它,而不是作为流检索它吗?
select dbms_lob.getlength(photo)from imagetable1
是否显示与原始图像文件匹配的大小?我正在使用oracle 10g express edition和eclipse IDE,编码已完成,然后运行应用程序,然后打开oracle 10g只有我正在尝试从imagetable1执行select*。我不是在借助java检索图像,我什么也没做。