Re: Very strange Error in Updates

Поиск
Список
Период
Сортировка
От Dario V. Fassi
Тема Re: Very strange Error in Updates
Дата
Msg-id 40F618DF.7070609@sistemat.com.ar
обсуждение исходный текст
Ответ на Very strange Error in Updates  ("Dario V. Fassi" <software@sistemat.com.ar>)
Ответы Re: Very strange Error in Updates  ("Dario V. Fassi" <software@sistemat.com.ar>)
Список 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
Ituzaingo 1628  (2000)  Rosario, Santa Fe, Argentina.
Tel / Fax:  +54 (341) 485.1432 / 485.1353



В списке pgsql-jdbc по дате отправления:

Предыдущее
От: "Dario V. Fassi"
Дата:
Сообщение: Very strange Error in Updates
Следующее
От: Kris Jurka
Дата:
Сообщение: Re: Very strange Error in Updates