![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
ich bekomme momentan auf einer Postgres DB ( 8.1.3 ) beim Zugriff mittels JDBC ( 8.1 800dev ) auf BLOBs den folgenden Fehler org.postgresql.util.PSQLException: Bad value for type int : 2338491788. Den Fehler bekomme ich nur für neu angelegte BLOBs ( seit ca. einer Woche ), alte funktionieren noch. Das schreiben der BLOBs funktioniert, erst das Auslesen macht Probleme. So wie es für mich aussieht sind die OIDs "übergelaufen". I'ld rather say JDBC treates the unsigned 4 byte value as signed by mistake. |
|
... Kann man Postgres irgendwie dazu bringen "kleinere" OIDs zu erzeugen. Dumping, recreating and reloading your datebase will only assign an OID to |
#2
| |||
| |||
|
|
ich bekomme momentan auf einer Postgres DB ( 8.1.3 ) beim Zugriff mittels JDBC ( 8.1 800dev ) auf BLOBs den folgenden Fehler org.postgresql.util.PSQLException: Bad value for type int : 2338491788. Den Fehler bekomme ich nur für neu angelegte BLOBs ( seit ca. einer Woche ), alte funktionieren noch. Das schreiben der BLOBs funktioniert, erst das Auslesen macht Probleme. So wie es für mich aussieht sind die OIDs "übergelaufen". |
#3
| |||
| |||
|
|
He is getting an org.postgresql.util.PSQLException: Bad value for type int : 2338491788 when he tries to access a large object with OID 2338491788 as a BLOB from JDBC. I think that you have found a bug in the JDBC driver. The driver treats OIDs as 'int' (which is a 4 byte signed integer), while OIDs are really 4 byte _unsigned_ integers. 'long' would be more appropriate. I'll inform the pgsql-JDBC mailing list! |
#4
| |||
| |||
|
|
We've found a workaround that fits our needs. |
![]() |
| Thread Tools | |
| Display Modes | |
| |