ORA-00913:价值太多了

时间:2013-01-30 16:32:19

标签: java oracle jdbc oracle11g ora-00913

获得ORA-00913:太多的值。不知道如何解决这个问题请有人帮帮我吗?

con2 = DriverManager.getConnection("Jdbc:Oracle:thin:@localhost:1521:XE", "system",
                "oracle123");
        File image=new File("E:/Users/ganesh/Desktop/line.jpg");
        String sql="insert into blobtab values(?,?)";  
        pstmt=con2.prepareStatement(sql);
        pstmt.setString(1,"akshita");
        fis=new FileInputStream(image);
        pstmt.setBinaryStream(2,(InputStream)fis,(int)(image.length()));
        int s = pstmt.executeUpdate();
        if (s > 0) {
            System.out.println("Image Uploaded successfully !");
        } else {
            System.out.println("unsucessfull to upload image.");
        }
        con2.close();
        pstmt.close();

2 个答案:

答案 0 :(得分:3)

这表明你的blobtab表中没有两列(或者如果表上有触发器,请检查DML是否会针对同一问题以递归方式触发)。

insert into blobtab values(?,?)

例如:

SQL> create table foo(id number);

Table created.

SQL> insert into foo values (1, 2);
insert into foo values (1, 2)
           *
ERROR at line 1:
ORA-00913: too many values

检查你的桌子。你也应该总是在插入中添加显式列名(以防有人稍后添加默认或可空列。即总是这样做:

insert into blobtab (col1, col2) values(?,?)

其中col1 col2是您真正的列名。

答案 1 :(得分:2)

列数小于传递的参数/参数

例如:插入插入到foo(名称,年龄)值(?,?,?)然后prepareStatment对象插入

由于 2列且值有3个参数 因此,  ORA-00913:值太多