2

値が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();
4

2 に答える 2

3

これは、blobtab テーブルに 2 つの列が含まれていないことを示しています (または、テーブルにトリガーがある場合は、同じ問題で 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

あなたのテーブルをチェックしてください。また、挿入には常に明示的な列名を付ける必要があります(後で誰かがデフォルトまたはnull可能な列を追加する場合に備えて。つまり、常に次のようにします:

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

col1 col2実際の列名はどこにありますか。

于 2013-01-30T17:19:04.187 に答える