powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / юникод и TRANSLATE
3 сообщений из 3, страница 1 из 1
юникод и TRANSLATE
    #38985513
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вынужден переводить базу с 1251 на юникод. С размаху натолкнулся на
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
connect to mtickpro user vvm using           
 Database server        = DB2/LINUXX8664 10.5.5

values(translate('WЯWЯ','X','W'))
1               
----------------
XЯXЯ            
  1 record(s) selected.

values(translate('WЯWЯ','Ю','Я'))
1               
----------------
WЮWЮ            
  1 record(s) selected.

values(translate('WЯWЯ','Я','W'))
1               
----------------
SQL0176N  The second, third or fourth argument of the TRANSLATE scalar 
function is incorrect.  SQLSTATE=42815

values(translate('WЯWЯ','X','Я'))
1               
----------------
SQL0176N  The second, third or fourth argument of the TRANSLATE scalar 
function is incorrect.  SQLSTATE=42815



Что занятно, REPLACE работает:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
values(replace('WЯWЯ','W','X'))
1               
----------------
XЯXЯ            
  1 record(s) selected.


values(replace('WЯWЯ','Я','Ю'))
1               
----------------
WЮWЮ            
  1 record(s) selected.


values(replace('WЯWЯ','W','Ю'))
1               
----------------
ЮЯЮЯ            
  1 record(s) selected.


values(replace('WЯWЯ','Я','X'))
1               
----------------
WXWX            
  1 record(s) selected.



Однако это не является полноценным заменителем - представьте себе функцию транслитерации из кириллицы в латиницу, например.

Я почти собрался начать писать свою TRANSLATE на Java, но, может, кто-то это уже сделал? Или я какую-то тонкость не учёл?
...
Рейтинг: 0 / 0
юникод и TRANSLATE
    #38985533
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Victor Metelitsa,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
create function translate (
  str  varchar(4000)
, to   varchar(4000)
, from varchar(4000)
)
returns varchar(4000)
contains sql
deterministic
no external action
return 
xmlcast(
xmlquery('fn:translate($s, $o, $r)' passing 
  str  as "s"
, from as "o"
, to   as "r"
)
as varchar(4000));

set path = USER, SYSTEM PATH;

values(translate('WЯWЯ','Я','W'));
...
Рейтинг: 0 / 0
юникод и TRANSLATE
    #38985682
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein,
спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / юникод и TRANSLATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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