Приветствую.
Имеется БД с AL32UTF8.
Выполняем следующие шаги:
create table tmp1(c1 varchar2(10 byte))
insert into tmp1 values ('ш');
insert into tmp1 values (convert('ш','CL8MSWIN1251'));
insert into tmp1 values (convert('шшшшшшшшшш','CL8MSWIN1251'));
select c1, dump(c1,1010)
from tmp1
C1 | DUMP(C1,1010)
----------------------------------------------------------------------------------------------------------------------
ш | Typ=1 Len=2 CharacterSet=AL32UTF8: 209,136
ш | Typ=1 Len=1 CharacterSet=AL32UTF8: 248
шшшшшшшшшш | Typ=1 Len=10 CharacterSet=AL32UTF8: 248,248,248,248,248,248,248,248,248,248
Далее update:
update tmp1
set c1=c1||convert('ш','CL8MSWIN1251')
C1 | DUMP(C1,1010)
----------------------------------------------------------------------------------------------------------------------
ш | Typ=1 Len=2 CharacterSet=AL32UTF8: 209,136
| NULL
шшшшшшшшш | Typ=1 Len=9 CharacterSet=AL32UTF8: 248,248,248,248,248,248,248,248,248
Вопрос1: В одной таблице могут храниться данные разных кодировок?
Вопрос2: Куда пропало по одной букве во второй и третей строке?
Вопрос3: Функция dump всегда показывает одной и тоже значение = кодировке БД?