Thread: java.sql.SQLException: Cannot instantiate a SerialArray object with null parameters, when using CachedRowSetImpl
Hello,
I use PostgreSQL 8.0.3 and following associated drivers :
postgresql-8.0-311.jdbc2.jar
postgresql-8.0-311.jdbc2ee.jar
postgresql-8.0-311.jdbc3.jar
I want to use CachedRowSetImpl to populate one row in the following table :
CREATE TABLE "Form2"
(
form2member3 int4,
form2member5 int8[],
)
WITHOUT OIDS;
postgresql-8.0-311.jdbc2.jar
postgresql-8.0-311.jdbc2ee.jar
postgresql-8.0-311.jdbc3.jar
I want to use CachedRowSetImpl to populate one row in the following table :
CREATE TABLE "Form2"
(
form2member3 int4,
form2member5 int8[],
)
WITHOUT OIDS;
I have inserted a row using pgAdmin into the good table.
Now, I simply try to populate the row :
public class Main2 {
public static void main(String[] args) {
try
{
DriverManager.registerDriver(new org.postgresql.Driver());
String SQLRequest="SELECT form2member3,form2member5::int8[] from \"Form2\";
CachedRowSet cached_row = new CachedRowSetImpl();
cached_row.setUrl("jdbc:postgresql://localhost:5432/myBDD");
cached_row.setUsername("postgres");
cached_row.setPassword("postgres");
cached_row.setCommand(SQLRequest);
cached_row.execute();
Object test = cached_row.getArray("form2member5");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
try
{
DriverManager.registerDriver(new org.postgresql.Driver());
String SQLRequest="SELECT form2member3,form2member5::int8[] from \"Form2\";
CachedRowSet cached_row = new CachedRowSetImpl();
cached_row.setUrl("jdbc:postgresql://localhost:5432/myBDD");
cached_row.setUsername("postgres");
cached_row.setPassword("postgres");
cached_row.setCommand(SQLRequest);
cached_row.execute();
Object test = cached_row.getArray("form2member5");
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
And I receive the following exception :
java.sql.SQLException: Cannot instantiate a SerialArray object with null parameters
at javax.sql.rowset.serial.SerialArray.<init>(SerialArray.java:124)
at com.sun.rowset.CachedRowSetImpl.populate(CachedRowSetImpl.java:641)
at com.sun.rowset.internal.CachedRowSetReader.readData(CachedRowSetReader.java:170)
at com.sun.rowset.CachedRowSetImpl.execute(CachedRowSetImpl.java:736)
at com.sun.rowset.CachedRowSetImpl.execute(CachedRowSetImpl.java:1385)
at Main2.main(Main2.java:34)
Does someone know where I am wrong, and what I must do to make it work ?