获得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();
答案 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:值太多