Subject Re: [Firebird-Java] Cannot transliterate character between character sets
Author Helen Borrie
At 09:18 PM 11/01/2004 +0000, you wrote:
>Hello!
>Firebird 1.03.972, JayBird 1.0.1
>I want to transfer all data from database1 to database2(UNICODE_FSS)
>to a different structure
>I use JDBC
>String totransfer=olddatabaseresultset.getString(x)
>and if totransfer has say a 'á' character and I want to
>newdatabasestatement.executeUpdate("insert into data(text)
>values('"+totransfer+"')");
>throws a FBSQLException: GDS Exception ...... Cannot transliterate
>character between character sets
>
>Now what's the workaround, how can I insert chars like "éáőúűöüó"=
>
> into
>my new database?

This isn't simple. You have to resolve your source dataset so that the
character columns are cast to the correct character set.

select
cast(charcol1 as varchar(40) character set unicode_fss) as charcol1_u,
datecol,
....

There are a lot of gotchas with this character set conversion, e.g. index
size limits (253 bytes = 84 characters or less), text blobs that can't be
converted, etc.

If this is a one-off operation, an existing datapump tool might be your
best bet.

Helen