Re: DatabaseMetaData - getImportedKeys
От | Kris Jurka |
---|---|
Тема | Re: DatabaseMetaData - getImportedKeys |
Дата | |
Msg-id | Pine.LNX.4.33.0311022237010.32292-100000@leary.csoft.net обсуждение исходный текст |
Ответ на | DatabaseMetaData - getImportedKeys (Aleksey <phone@ukr.net>) |
Список | pgsql-jdbc |
On Mon, 3 Nov 2003, 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. > This is particularly odd because the DatabaseMetaData function has already parsed the data as valid unicode and then setup a "fake" in memory result set to work with which this is failing on. Could you send me a pg_dump file of something that will make this fail? Kris Jurka
В списке pgsql-jdbc по дате отправления: