From: | Fernando Nasser <fnasser(at)redhat(dot)com> |
---|---|
To: | Aleksey <phone(at)ukr(dot)net> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: JDBC DatabaseMetaData problem |
Date: | 2003-10-29 13:49:29 |
Message-ID: | 3F9FC569.3080004@redhat.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Wrong list. Please post this to the pgsql-jdbc(at)postgresql(dot)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(at)redhat(dot)com
2323 Yonge Street, Suite #300
Toronto, Ontario M4P 2C9
From | Date | Subject | |
---|---|---|---|
Next Message | Alex | 2003-10-29 13:52:02 | PG_RESTORE/DUMP Question |
Previous Message | Jan Wieck | 2003-10-29 13:44:55 | 7.3.5 release (was: Re: SELECT with row>32k hangs over SSL-Connection) |