Re: JDBC DatabaseMetaData problem - Mailing list pgsql-general
From | Fernando Nasser |
---|---|
Subject | Re: JDBC DatabaseMetaData problem |
Date | |
Msg-id | 3F9FC569.3080004@redhat.com Whole thread Raw |
In response to | JDBC DatabaseMetaData problem (Aleksey <phone@ukr.net>) |
List | pgsql-general |
Wrong list. Please post this to the pgsql-jdbc@postgresql.org list. I am sure there are people there that can help you with this. Regards, Fernando Aleksey wrote: > Hello, > > > > I have the following problem working with DatabaseMetaData. There is a > database with table and attribute names in Russian. Database cluster was > initialized with appropriate ru_RU.KOI8-R locale. All the databases were > created with KOI8-R encoding. No problems were encountered in accessing > database table data with JDBC. > > Database has foreign key constraints that I try to get with > DatabaseMetaData methods. Both getTables and getPrimaryKeys work fine, > all the results have correct encoding and values. > > The following fragment of code causes exception: > > rs = meta.getImportedKeys(null,null,tableName); > while(rs.next()) { > > String pkTable = rs1.getString("PKTABLE_NAME"); > String pkColumn = rs1.getString("PKCOLUMN_NAME"); /* here */ > > String fkTable = rs1.getString("FKTABLE_NAME"); > String fkColumn = rs1.getString("FKCOLUMN_NAME"); /* and here */ > > } > > PKTABLE_NAME and FKTABLE_NAME fields are fetched correctly. Both the > marked lines produce exception with this stack trace: > > at org.postgresql.core.Encoding.decodeUTF8(Encoding.java:270) > at org.postgresql.core.Encoding.decode(Encoding.java:165) > at org.postgresql.core.Encoding.decode(Encoding.java:181) > at > org.postgresql.jdbc1.AbstractJdbc1ResultSet.getString(AbstractJdbc1ResultSet.java:97) > > at > org.postgresql.jdbc1.AbstractJdbc1ResultSet.getString(AbstractJdbc1ResultSet.java:337) > > > Error message is: "Invalid character data was found. This is most > likely caused by stored data containing characters that are invalid for > the character set the database was created in. The most common example > of this is storing 8bit data in a SQL_ASCII database.", > > but database is not SQL_ASCII (actually KOI8-R) and all the characters > in column names are taken from this codepage. Other DatabaseMetaData > methods work with these characters fine. > > I tested the same methods with the same database but with tables with > latin names - everything worked fine, but renaming all the columns will > cause a huge amount of extra work with database and applications. > > > I use PostgreSQL-7.3.4 compiled from source, JDBC driver from > http://jdbc.postgresql.org/download/pg73jdbc3.jar on Linux, J2SDK 1.4.1_02. > > > I will appreciate any help with this. > > Thank you. > > > Sincerely yours, > Aleksey. > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org > -- Fernando Nasser Red Hat Canada Ltd. E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9
pgsql-general by date: