Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Хочу получить символьное поле в результате select в кодировке отличной от имеющейся / 6 сообщений из 6, страница 1 из 1
03.03.2016, 10:35
    #39184543
Хочу получить символьное поле в результате select в кодировке отличной от имеющейся
В мечтах видится что-то вроде:

Код: sql
1.
Select CPConvert (1251,866, t1.f1 ) from....



Можно все поля в выборке, т.е. типа

Код: sql
1.
Select ...  CodePage 866 ...



В информационном центре что-то не видится нифига...
...
Рейтинг: 0 / 0
03.03.2016, 10:55
    #39184566
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу получить символьное поле в результате select в кодировке отличной от имеющейся
Честный чайник,

Т.е. выбрать из базы - преобразовать - записать куда-то там... очень напоминает задачи решаемые ETL средствами.
...
Рейтинг: 0 / 0
03.03.2016, 11:41
    #39184610
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу получить символьное поле в результате select в кодировке отличной от имеющейся
Честный чайник,

Может здесь что-то можно найти:

http://www-01.ibm.com/support/knowledgecenter/#!/SSEPGG_10.5.0/com.ibm.db2.luw.xml.doc/doc/c0050658.html?cp=SSEPGG_10.5.0
...
Рейтинг: 0 / 0
03.03.2016, 12:03
    #39184649
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу получить символьное поле в результате select в кодировке отличной от имеющейся
Честный чайник,

Вы можете преобразовать строку в varchar for bit data в нужной кодировке.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select 
  e.enc, t.str
, char2byte(t.str, e.enc) str_bit_data
, byte2char(char2byte(t.str, e.enc), e.enc) str_orig
from
  table(values 'iso8859-5', 'cp1251', 'utf-8') e (enc) 
, table(values 'хеллоу, ворлд', 'hello, world') t(str)
order by e.enc, t.str;

 ENC       STR           STR_BIT_DATA                                     STR_ORIG
 --------- ------------- ------------------------------------------------ -------------
 cp1251    hello, world  68656c6c6f2c20776f726c64                         hello, world
 cp1251    хеллоу, ворлд f5e5ebebeef32c20e2eef0ebe4                       хеллоу, ворлд
 iso8859-5 hello, world  68656c6c6f2c20776f726c64                         hello, world
 iso8859-5 хеллоу, ворлд e5d5dbdbdee32c20d2dee0dbd4                       хеллоу, ворлд
 utf-8     hello, world  68656c6c6f2c20776f726c64                         hello, world
 utf-8     хеллоу, ворлд d185d0b5d0bbd0bbd0bed1832c20d0b2d0bed180d0bbd0b4 хеллоу, ворлд


Если это то, что вам надо, то обе эти функции реализуются на java в одну строку.

Вы какую задачу решаете?
...
Рейтинг: 0 / 0
03.03.2016, 13:14
    #39184824
Хочу получить символьное поле в результате select в кодировке отличной от имеющейся
Mark Barinstein, есть ощущение, что функции есть, только я их не знаю.

Ну вот я могу написать что-то вроде
export to 'файл' of del modified by codepage=866 select ...
и мне в соответствующей кодировке выведется в текстовый файл результат
DB2 cама определит текущую кодировку, сама преобразует.

Допустим, я хочу тупо в control center увидеть результат в другой кодировке или, чтобы встроенная процедура возвращала в конкретной кодировке. Не в export, а сразу в select. Это как-то можно готовыми средствами осуществить?
...
Рейтинг: 0 / 0
03.03.2016, 13:54
    #39184897
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочу получить символьное поле в результате select в кодировке отличной от имеющейся
Честный чайник,

Все программы, которые работают с базами и показывают строки, показывают их в одной кодировке - в той, которая на клиенте используется.
Вне зависимости от того, какая кодировка на клиенте используется, вы одну и ту же строку увидите в одном и том же виде.
Слово "хеллоу, ворлд", в какой бы вы кодировке не настроили свою клиентскую программу, отображаться вам будет всегда одинаково, если преобразование кодовых страниц между клиентом и сервером работает правильно.
Разницу вы можете увидеть только если вы строку представляете в виде последовательности байтов, закодированную согласно выбранной кодировке, что и показано в примере выше.

Не понятно, что значит для вас "увидеть результат в другой кодировке"?
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Хочу получить символьное поле в результате select в кодировке отличной от имеющейся / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]