Thread: Arrays and setObject problem

Arrays and setObject problem

From
Rafał Staniszewski
Date:
Hi all,

During development of my web application I found a problem I can't handle.
I have a relation:

CREATE TABLE public.test
(
   id int4,
   tab varchar[]
) WITHOUT OIDS;

Using jdbc and prepared statement I'm trying to put data into this table:

public add(Connection conn,int id,Vector v) {

PreparedStatement pstmt = conn.prepareStatement("insert into
test(id,tab) values(?,?)");
pstmt.setInt(1,id);
pstmt.setObject(2,v.toArray());
pstmt.executeUpdate();
pstmt.close();
}

When I run this I get:
e.getErrorCode() -> 0
e.getMessage() -> ERROR: missing dimension value
e.getSQLState() -> 22P02

I tried to change 'pstmt.setObject(2,v.toArray());' with:

String[] att = new String[v.size()];
for(int i=0;i<v.size();i++) {
    att[i] = v.get(i).toString();
    // and also with
    // att[i] = (String)v.get(i)
}
pstmt.setObject(2,att);

but still the same error occurred.

I'm using:
postegresql: 7.4.2
jdbc driver: pg74.213.jdbc3.jar

Thanks in advance for help.

Rafal Staniszewski