Re: PreparedStatement.executeBatch() error? 7.3 - Mailing list pgsql-jdbc

From Jeremiah Jahn
Subject Re: PreparedStatement.executeBatch() error? 7.3
Date
Msg-id 1044910255.1851.548.camel@bluejay.goodinassociates.com
Whole thread Raw
In response to Re: PreparedStatement.executeBatch() error? 7.3  (Barry Lind <blind@xythos.com>)
List pgsql-jdbc
that seems to have fixed it...the non-beta version..That's what came
down with CVS at the 7.3 release. It alos seems to have fixed the error
I was getting about not enough memory when the data was over 1meg in
size. Still takes forever to process it, but hey..

thanx,
-jj-

On Mon, 2003-02-10 at 10:53, Barry Lind wrote:
> Jeremiah,
>
> This shows that you are using the beta1 driver.  Can you download the
> latest 7.3 driver from jdbc.postgresql.org and try it, and send it's logs?
>
> thanks,
> --Barry
>
>
> Jeremiah Jahn wrote:
> > Here are the results of the log level set to 2. There seems to be a
> > little extra data stuck on the end of the batch version.
> >
> >
> >  Establishing connection...PostgreSQL 7.3b1 JDBC3 jdbc driver build 104
> > LOG:  query: set datestyle to 'ISO'; select version(), case when pg_encoding_to_char(1) = 'SQL_ASCII' then
'UNKNOWN'else getdatabaseencoding() end; 
> > getConnection returning driver[className=org.postgresql.Driver,org.postgresql.Driver@5dd582]
> > done
> > LOG:  query: begin;
> > LOG:  query: delete from actor where case_id = '1998CF46' and court_ori = 'IL078015J'
> > ...
> > LOG:  query: insert into case_data (case_id,court_ori,extraction_datetime,update_date) values
('1998CF46','IL078015J','20030210T092429','1901/01/01')
> > java.lang.ArrayIndexOutOfBoundsException: 1
> >         at org.postgresql.core.QueryExecutor.sendQuery(QueryExecutor.java:143)
> >         at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:65)
> >         at org.postgresql.jdbc1.AbstractJdbc1Connection.ExecSQL(AbstractJdbc1Connection.java:451)
> >         at org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:281)
> >         at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:48)
> >         at org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1Statement.java:179)
> >         at org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1Statement.java:165)
> >         at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:80)
> >         at com.goodinassociates.judici.importer.judici.DOXImporter.importDoc(Unknown Source)
> >         at com.goodinassociates.judici.importer.judici.ImportServer$Client.run(ImportServer.java:482)
> > LOG:  query: insert into case_data_store values ('1998CF46','IL078015J',0,'\\254\\355\\000\\005t\\001\\245<?xml
version="1.0"encoding="UTF-8"?>\\015\\012<!DOCTYPE CourtDataTransferFile>\\015\\012<CourtDataTransferFile
FileCreationDateTime="20030210T092429"Version="1"><Provider ProducerID="translation" ID="GAL" /><Court
NCIC="IL078015J"><CaseNumber="1998CF46" Action="Delete" ModificationType="None" LastUpdateDate="1901/01/01" TypeCode=""
SubtypeCode=""TypeSubtypeText="" Year="" Title="" Category=""
/></Court></CourtDataTransferFile>\\015\\012')'1998CF46'Qrollback;begin; 
> > ERROR:  parser: parse error at or near "'1998CF46'" at character 541
> >
> > the last line looks like this in the non-batch version:
> > LOG:  query: insert into case_data_store values ('1998CF47','IL078015J',0,'\\254\\355\\000\\005t\\001\\245<?xml
version="1.0"encoding="UTF-8"?>\\015\\012<!DOCTYPE CourtDataTransferFile>\\015\\012<CourtDataTransferFile
FileCreationDateTime="20030210T093214"Version="1"><Provider ProducerID="translation" ID="GAL" /><Court
NCIC="IL078015J"><CaseNumber="1998CF47" Action="Delete" ModificationType="None" LastUpdateDate="1901/01/01" TypeCode=""
SubtypeCode=""TypeSubtypeText="" Year="" Title="" Category="" /></Court></CourtDataTransferFile>\\015\\012') 
> >
> > There is no '1998CF46' stuff tagged on the end of it.
> >
> >
> >
> > On Fri, 2003-02-07 at 21:34, Barry Lind wrote:
> >
> >>Jeremiah,
> >>
> >>I am a bit confused.  You mention two different errors in your email the
> >>  "ERROR:  parser:...." and the stack trace.  Do both get produced at
> >>the same time, or are they happening at different times?
> >>
> >>Also the parse error looks like an error coming from the database.  Can
> >>you turn on query logging on the server to see the text of the statement
> >>that the error is occuring in?  That should provide a clue as to why the
> >>sql statement is invalid.
> >>
> >>To log the sql statements on the server you want to set the parameter
> >>log_statement=true in your postgresql.conf file.  Also it might help to
> >>turn on debug logging in the jdbc driver.  Can you add ?loglevel=2 to
> >>the jdbc connection url?  (both of the above suggestions are for 7.3,
> >>the details on doing this on 7.2 are a bit different).
> >>
> >>thanks,
> >>--Barry
> >>
> >>
> >>Jeremiah Jahn wrote:
> >>
> >>>The following code doesn't work, but if in place of doing an addBatch
> >>>loop with an executeBatch(), I do an executeUpdate each time it does
> >>>work. I get a parse error from the db server:
> >>>
> >>>ERROR:  parser: parse error at or near "'1998CF43'" at character 4202
> >>>
> >>>this corresponds to the first value. I'm using the jdbc3 jar for this.
> >>>
> >>> PreparedStatement pStatement = connection.prepareStatement("insert into case_data_store values (?,?,?,?)");
> >>>        ByteArrayOutputStream baos = new ByteArrayOutputStream(4096);
> >>>
> >>>        for (int current_chunk = 0; current_chunk < chunk_count; current_chunk++){
> >>>
> >>>        pStatement.setString(1,values.get("CASENUMBER").toString());
> >>>        pStatement.setString(2,values.get("NCIC").toString());
> >>>        pStatement.setInt(3,current_chunk);
> >>>        pStatement.setBytes(4,baos.toByteArray());
> >>>        pStatement.addBatch();
> >>>        //pStatement.executeUpdate();
> >>>
> >>>        }
> >>>
> >>>        pStatement.executeBatch();
> >>>
> >>>
> >>>
> >>>This is the stack trace:
> >>>java.lang.ArrayIndexOutOfBoundsException: 1
> >>>        at
> >>>org.postgresql.core.QueryExecutor.sendQuery(QueryExecutor.java:143)
> >>>        at
> >>>org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:65)
> >>>        at
> >>>org.postgresql.jdbc1.AbstractJdbc1Connection.ExecSQL(AbstractJdbc1Connection.java:451)
> >>>        at
> >>>org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:281)
> >>>        at
> >>>org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:48)
> >>>        at
> >>>org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1Statement.java:179)
> >>>        at
> >>>org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1Statement.java:165)
> >>>        at
> >>>org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:80)
> >>>
> >>>
> >>
> >>
> >>
> >>
> >>---------------------------(end of broadcast)---------------------------
> >>TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
--
Jeremiah Jahn <jeremiah@cs.earlham.edu>


pgsql-jdbc by date:

Previous
From: Barry Lind
Date:
Subject: Re: Timestamp problems
Next
From: Jeremiah Jahn
Date:
Subject: create BLOB question