Subject | Re: [firebird-support] Re: UNICODE_FSS in select statement - ERROR |
---|---|
Author | Helen Borrie |
Post date | 2009-03-12T09:59:09Z |
At 08:30 PM 12/03/2009, you wrote:
You will need to create a new (temporary) column and use it to convert your data, viz.
alter table yourtable
add tempunicode varchar(50) character set UNICODE_FSS
Commit that; then do
update yourtable
set tempunicode = cast (ExistingColumn as varchar(50) character set UNICODE_FSS)
Commit that; then check that the new column has the data correctly.
Then drop the ExistingColumn; then do
alter table yourtable
add ExistingColumn varchar(50) character set UNICODE_FSS
Commit that; then do
update yourtable
set ExistingColumn = tempunicode
Check the data; then finally, drop the tempunicode column.
Also consider converting this data to UTF8, rather than UNICODE_FSS, which is very limited in its capability and not very portable.
./hb
>It is not non-unicode caracters it is characters from win1251 set (latin)win1251 is not unicode, and a "collation" called UNICODE_FSS is not a valid collation for the win1251 character set.
You will need to create a new (temporary) column and use it to convert your data, viz.
alter table yourtable
add tempunicode varchar(50) character set UNICODE_FSS
Commit that; then do
update yourtable
set tempunicode = cast (ExistingColumn as varchar(50) character set UNICODE_FSS)
Commit that; then check that the new column has the data correctly.
Then drop the ExistingColumn; then do
alter table yourtable
add ExistingColumn varchar(50) character set UNICODE_FSS
Commit that; then do
update yourtable
set ExistingColumn = tempunicode
Check the data; then finally, drop the tempunicode column.
>Here is one add: I was backup and restore my firebrid database 2.0 with firebird 2.1.1 in all cases when this don't work!Backing up and restoring does not convert single-byte data (e.g. win1251) into unicode, which is multi-byte.
Also consider converting this data to UTF8, rather than UNICODE_FSS, which is very limited in its capability and not very portable.
./hb