Very strange Error in Updates

From: "Dario V(dot) Fassi" <software(at)sistemat(dot)com(dot)ar>
To: "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Very strange Error in Updates
Date: 2004-07-15 05:33:33
Message-ID: 40F6172D.10301@sistemat.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-jdbc

I found a very strange error/behavior in a PreparedStatement for a
simple SQL Update over a VARCHAR field.
The code is like:

Statement stmt = con.createStatement();
PreparedStatement pstIns = con.prepareStatement("update userid.t set
calle = ? ");
ResultSet rs = stmt.executeQuery( "select calle from userid.t2" );
while ( rs.next() ) {
pstIns.clearParameters();
String x = rs.getString("CALLE");
pstIns.setString(1, x );
int nrows = pstIns.executeUpdate();
System.out.println( "Filas afectadas "+ nrows );
}

When the parameter fill the full-length of receiving field and has any
non common character, the update throw a exception like:

java.sql.SQLException: ERROR: value too long for type character varying(30)
at
org.postgresql.core.v2.QueryExecutorImpl.receiveErrorMessage(QueryExecutorImpl.java:420)
at
org.postgresql.core.v2.QueryExecutorImpl.processResults(QueryExecutorImpl.java:345)
at
org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:251)
at
org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:159)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.execute(AbstractJdbc1Statement.java:342)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.executeWithFlags(AbstractJdbc1Statement.java:290)
at
org.postgresql.jdbc1.AbstractJdbc1Statement.executeUpdate(AbstractJdbc1Statement.java:245)
at
com.sistemat.app.rsmaster.reloadable.RepImportar.PrDw_Cuentas(RepImportar.java:2471)
at
com.sistemat.app.rsmaster.reloadable.RepImportar.Importar(RepImportar.java:260)
at
com.sistemat.app.rsmaster.reloadable.RepMasterImpl.Ciclo_Replicacion(RepMasterImpl.java:955)
at
com.sistemat.app.rsmaster.reloadable.RepMasterImpl.runWorker(RepMasterImpl.java:748)
at
com.sistemat.app.rsmaster.reloadable.RepMasterImpl.run(RepMasterImpl.java:427)
at java.lang.Thread.run(Unknown Source)

This field/value produce the Exception: CALLE=[ENFERMERA CLEMON. B§
ALTO ALBR]

If this field is changed to: CALLE=[ENFERMERA
CLEMON. B# ALTO ALBR]
then the update is performed without
any problem.

Although the first value can be Inserted with a prepared statement
without problems.

A have no explanation to this case , and any help will be appreciated.

Dario Fassi.

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dario V. Fassi 2004-07-15 05:40:47 Re: Very strange Error in Updates
Previous Message Tom Lane 2004-07-15 04:20:59 Re: Portals and nested transactions

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dario V. Fassi 2004-07-15 05:40:47 Re: Very strange Error in Updates
Previous Message malik ashfaq 2004-07-15 03:31:46 unscribe me pls