Subject Re: Cannot transliterate character between character sets
Author nagypapi
--- In Firebird-Java@yahoogroups.com, Helen Borrie <helebor@t...> wrote:
> 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,
> ....
I tried cast(msg as varchar(50) character set unicode_fss) as msg_u
but after this, the transliterate error came not only when inserting
hungarian chars, but after the first row, that was totally english
I have varchar(255) types I want to convert to unicode_fss :(


>
> 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.
What's a datapump tool? :)
Do you know any free ones? :)
Thanks
John