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> |
Cc: | "Dario V(dot) Fassi" <software(at)sistemat(dot)com(dot)ar> |
Subject: | Re: Very strange Error in Updates |
Date: | 2004-07-15 05:40:47 |
Message-ID: | 40F618DF.7070609@sistemat.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-jdbc |
Worst cases:
The receiving field is a Varchar(30) .
Sample data :
CALLE=[ENFERMERA CLEMON. B- ALTO ALBR] len=30 : Is Updated Ok.
CALLE=[ENFERMERA CLEMON. Bº ALTO ALBR] len=30 : Is NOT Updated
CALLE=[ENFERMERA CLEMON. Bº ALTO ALB] len=29 : Is Updated Ok.
Dario V. Fassi wrote:
> 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.
>
--
Dario V. Fassi
SISTEMATICA ingenieria de software srl
<http://www.sistemat.com.ar>Ituzaingo 1628 (2000) Rosario, Santa Fe,
Argentina.
Tel / Fax: +54 (341) 485.1432 / 485.1353
From | Date | Subject | |
---|---|---|---|
Next Message | Kris Jurka | 2004-07-15 05:42:03 | Re: Very strange Error in Updates |
Previous Message | Dario V. Fassi | 2004-07-15 05:33:33 | Very strange Error in Updates |
From | Date | Subject | |
---|---|---|---|
Next Message | Kris Jurka | 2004-07-15 05:42:03 | Re: Very strange Error in Updates |
Previous Message | Dario V. Fassi | 2004-07-15 05:33:33 | Very strange Error in Updates |