Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Работаю с адаптацией казахских адресов в русский язык. Сайт почты Казахстана предлагает справочники, где в русских названиях используются символы расширенной казахской кириллицы. Я этот справочник при помощи SSIS перегоняю из исходного UTF8 в nvarchar, и далее мне предстоит заменить казахские буквы наиболее близкими по звучанию русскими (так как в дальнейшем эти сведения будут использоваться в не поддерживающий казахский алфавит системе). Таблица транслитерации предоставлена заказчиком. Важно - большие буквы заменить большими, маленькие - маленькими. В БД используется кириллический регистронезависимый Collation. Можно ли написать хранимую функцию транслитерации, в которой replace будет регистрозависимым? Или даже абстрагируемся от казахского языка: можно ли в базе с регистронезависимым Collation реализовать замену 'Ё' на 'Е', а 'ё' на 'е' ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2019, 22:29 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
TrurlВ БД используется кириллический регистронезависимый Collation. Можно ли написать хранимую функцию транслитерации, в которой replace будет регистрозависимым? Или даже абстрагируемся от казахского языка: можно ли в базе с регистронезависимым Collation реализовать замену 'Ё' на 'Е', а 'ё' на 'е' ?Да, используйте выражение COLLATE с регистрозависимым коллейшеном Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2019, 22:40 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
или по ASCII-коду менять ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 00:41 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Какой ASCII в UTF? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 09:58 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Alibek B.Какой ASCII в UTF?нуу код символа имелся в виду, чо придираешься :) раз у тебя "перегоняю из исходного UTF8 в nvarchar", то функцией UNICODE Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 10:05 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
courtнуу код символа имелся в виду, чо придираешься Если придираться, то в UTF не код символа, а кодовая точка (code point). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 10:49 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Trurl, эта задача решается скриптом на С#, который встраивается в SSIS пакет. Не нужны никакие функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 12:10 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Владислав Колосовэта задача решается скриптом на С#, который встраивается в SSIS пакет. Не нужны никакие функции.Там тоже придётся вызывать какие нибуть функции :-) Конечно, для сложных перекодировок лучше использовать C#, но для замены Ё на Е я бы всё таки вызвал REPLACE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 17:10 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
alexeyvg, там не просто е на ё, автору задан массив преобразований. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 17:36 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Владислав Колосовalexeyvg, там не просто е на ё, автору задан массив преобразований.Если именно замена буквы на букву по массиву преобразований, то я бы тоже подумал. Непонятен масшаб, к тому же тут нет каких то действий, для которых существуют стандартные библиотеки (наподобии перекодировки). С другой стороны, если автор уже делает это:Trurlпри помощи SSIS перегоняю из исходного UTF8 в nvarcharи делается это в скрипт таске, то лучше туда же добавить и эту замену, тем более что так будет быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 17:57 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Реализовал через посимвольный анализ строки и подстановку через Код: sql 1. где @substring - это NCHAR(1) всего 9 пар казахских символов + русские Ёё На всём массиве казахских адресов отрабатывает за приемлемое время. метод с collation в запросе (который так хорошо справляется с Ёё => Ee) не справляется с четырьмя казахскими символами, пришлось отказаться Всем спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 19:03 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Trurlметод с collation в запросе (который так хорошо справляется с Ёё => Ee) не справляется с четырьмя казахскими символами, пришлось отказатьсяА можете привести пример такого символа? Это очень странно, нужно сообщить о баге в Микрософт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 19:45 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
alexeyvg, https://upload.wikimedia.org/wikipedia/commons/e/e4/Keyboard_KAZ.png верхний ряд, третья слева и вторая справа (строчные и прописные) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2019, 22:00 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
Trurlalexeyvg, https://upload.wikimedia.org/wikipedia/commons/e/e4/Keyboard_KAZ.png верхний ряд, третья слева и вторая справа (строчные и прописные)Странно, почему у вас сервер не справился, у меня справился Код: sql 1. 2. 3. 4. ЗЫ. Тут казахские буквы показываются знаком вопроса, какой то косяк, но я в примере использовал соотв буквы из виртуальной клавиатуры https://www.virtual-keyboard-online.com/ru/kazakh/ Приложил картинкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2019, 13:52 |
|
||
|
REPLACE больших букв большими, маленьких - маленькими
|
|||
|---|---|---|---|
|
#18+
alexeyvgСтранно, почему у вас сервер не справился, у меня справилсяРезультат, соответственно, "Е-мое еоЕО" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2019, 13:54 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39831646&tid=1687586]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 361ms |

| 0 / 0 |
