|
Teradata - Instr проблема с кирилицей
|
|||
---|---|---|---|
#18+
Господа, нужно выдергивать из строки 5 фраз, который начинаются со слова-ключа и заканчиваются спецсимволом ';' В Teradata для этого есть функция instr, но при парсинге кириллицы, запрос падает с ошибкой. Как быть? И, возможно, есть более красивый способ парсинга? Пример select instr('деп: sdasda;na','деп',1) Ошибка: Error: [Teradata Database] [TeraJDBC 13.10.00.01] [Error 6706] [SQLState HY000] The string contains an untranslatable character. SQLState: HY000 ErrorCode: 6706 П.С. Рабочий запрос with s as ( select 'zap: sdasda;nap:sda;op:sdasd;zap:adsasda;otv:asder;ty' CommentString, 'zap' zap, 'dep' dep, 'op' op, 'nap' nap, 'otv' otv ) select CommentString, substr(CommentString,instr(CommentString,zap,1),instr(CommentString,';',instr(CommentString,zap))-instr(CommentString,zap,1)) zap, substr(CommentString,instr(CommentString,dep,1),instr(CommentString,';',instr(CommentString,dep))-instr(CommentString,dep,1)) dep, substr(CommentString,instr(CommentString,op,1),instr(CommentString,';',instr(CommentString,op))-instr(CommentString,op,1)) op, substr(CommentString,instr(CommentString,nap,1),instr(CommentString,';',instr(CommentString,nap))-instr(CommentString,nap,1)) nap, substr(CommentString,instr(CommentString,otv,1),instr(CommentString,';',instr(CommentString,otv))-instr(CommentString,otv,1)) otv from s ; ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 09:34 |
|
Teradata - Instr проблема с кирилицей
|
|||
---|---|---|---|
#18+
С insert какая то бага... Решил задачу с регулярными выражениями, может пригодиться. with s as ( select 'Заказчик: Иванов.И.И;Исполнитель: Сидоров В.В.;Описание: бла-бла' CommentString ) select cast(regexp_substr(CommentString,'((Заказчик:)+.*?)+(;|\Z)') as varchar(100)) zak, cast(regexp_substr(CommentString,'((Исполнитель:)+.*?)+(;|\Z)') as varchar(200)) dep, cast(regexp_substr(CommentString,'((Описание:)+.*?)+(;|\Z)') as varchar(1000)) op from s ; ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2015, 11:43 |
|
|
start [/forum/topic.php?fid=56&msg=38973087&tid=2015140]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
182ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 296ms |
0 / 0 |