Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.02.2006, 20:00
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Наверное дурацкий вопрос, но все же: Как создать на DB2 Case Insensitive базу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2006, 20:04
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
А особенно интересует как работать/пересоздать уже имеющуюся базу, чтобы она стала/вела себя как Case Insensitive ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2006, 20:19
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2006, 20:51
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Victor MetelitsaНикак.Подождите, Виктор, что значит никак ? Вообще никак Case Insensitive не сделать!? Как серпом по одному месту... :( А как же быть тогда? Как мне зделать так, чтобы для DB2 "Вася" и "вася" были одним и тем же лицом? Я не говорю даже о том, чтобы "ёжик" и "ежик" (Accent Insensitive) были одинаковыми... Вы то как это обходите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2006, 21:14
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Не обхожу. Они разные. А почему и зачем я это должен как-то обходить? Почему "Вася" и "вася" должны быть одним и тем же? Я не понимаю. Можно поставить вопрос по-другому - я хочу найти все вариации "вася" и "Вася" одним запросом, но select * from xxx where ucase(xxx.field)=ucase('Вася') может быть очень неэффективно. До сих пор в DB2 нельзя создать индексы по выражениям. Вроде бы обещали в 9-й версий, но я не помню, чтобы об этом упоминалось в последних новостях. Workaround: создать поля наподобие u_field generated always as (ucase(field)) и использовать u_field в индексах в таком случае в select * from xxx where ucase(xxx.field)=ucase('Вася') компилятор осуществит подстановку select * from xxx where u_field=ucase('Вася') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2006, 23:14
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Victor MetelitsaНе обхожу. Они разные. А почему и зачем я это должен как-то обходить? Почему "Вася" и "вася" должны быть одним и тем же? Я не понимаю.А почему "Вася" и "вася" обязаны быть разными? Да, вообще-то, с точки зрения прикладной задачи, они одинаковые. В моем случае даже "ежик" и "Ёжик" одно и то же лицо. Victor MetelitsaМожно поставить вопрос по-другому - я хочу найти все вариации "вася" и "Вася" одним запросом, но select * from xxx where ucase(xxx.field)=ucase('Вася') может быть очень неэффективно.Вообщем-то да, остается только этот путь. Но, если я вас правильно понял, то индексы в таком случае могут работать неэффективно. Еще ass в том, что об этом придется везде помнить. Ладно, поэкспериментирую, можеет и не медленнее будет. Victor MetelitsaДо сих пор в DB2 нельзя создать индексы по выражениям. Вроде бы обещали в 9-й версий, но я не помню, чтобы об этом упоминалось в последних новостях.Индексы по выражениям это конечно хорошо. У меня они есть, но большой нужды их использовать пока не было. Лучше бы они CS/CI и AS/AI реализовали бы и вопрос бы сам собой снялся. Виктор, не подскажете, может быть такая редакция DB2, которая не поддерживает unicode (GRAPHIC)? Это случайно не какой-нибудь DB2 Express? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2006, 23:47
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Graphic - это изначально не Unicode, а DBCS (Double Byte Character Set), т.е. какой-то азиатский набор символов (японский, два китайских, корейский...). Сколько помню (а этот момент помню я с DB2 версии 2.1 для OS/2), оно "всегда" было, а вот поддержка Юникода появилась совсем недавно (как я понимаю, в Юникодных базах CHAR=UTF8 и GRAPHIC=UTF16, но в неюникодных GRAPHIC - это никакой не Юникод). Не слышал, чтобы это где-то вырезали, да и к чему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2006, 23:49
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
"какой-то азиатский набор символов" - имеется ввиду класс двубайтовых азиатских кодировок, а не какая-то конкретная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 00:00
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
DB2 Victor MetelitsaМожно поставить вопрос по-другому - я хочу найти все вариации "вася" и "Вася" одним запросом, но select * from xxx where ucase(xxx.field)=ucase('Вася') может быть очень неэффективно.Вообщем-то да, остается только этот путь. Но, если я вас правильно понял, то индексы в таком случае могут работать неэффективно. Еще ass в том, что об этом придется везде помнить. Ладно, поэкспериментирую, можеет и не медленнее будет. Я же привел workaround. "Может быть очень неэффективно" относится к тому, что если "Вася" встречается очень часто, то индексы в принципе бесполезны и generated-поле не ускорит поиск. Ещё уточнение - индексы, которые не эффективны, имеются в виду "древесные". Битмаповые могли бы в ряде случаев помочь больше, но их нет. Зато можно по Generated-полю создать измерение в MDC-таблицы, и это, пожалуй, круче, чем битмаповый индекс, за исключением негибкости (ведь добавить/удалить индекс проще, чем поменять структуру таблицы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 02:14
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Victor MetelitsaGraphic - это изначально не Unicode, а DBCS (Double Byte Character Set), т.е. какой-то азиатский набор символов (японский, два китайских, корейский...). ... а вот поддержка Юникода появилась совсем недавно (как я понимаю, в Юникодных базах CHAR=UTF8 и GRAPHIC=UTF16, но в неюникодных GRAPHIC - это никакой не Юникод). Не слышал, чтобы это где-то вырезали, да и к чему?Подождите, unicode - это и есть вообщем-то "Double Byte Character Set" для поддержки корейского, японского и т.п. в том числе. Даже описание констант для GRAPHIC такое же как для NVARCHAR в MSSQL. Читаю help от DB2: Код: plaintext 1. 2. 3. 4. Соединился с базой, запустил: Код: plaintext 1. [IBM][CLI Driver][DB2/NT] SQL1216N Графические данные и графические функции не поддерживаются в этой базе данных. SQLSTATE=56031 Согласен, мой вопрос был не совсем корректен. Но выходит, база может поддерживать/не поддерживать GRAPHIC. Вы не скажете, как сделать чтобы поддерживались? Victor MetelitsaЕщё уточнение - индексы, которые не эффективны, имеются в виду "древесные". Битмаповые могли бы в ряде случаев помочь больше, но их нет... В Сиквеле тоже нет битмаповых. Но collation может быть свой/разный и у сервера и у базы и у каждого поля в таблице. Как и у DB2 есть Binary Sort и Dictionary Sort. Просто, очевидно та часть которая Dictionary Sort расширена до опций СS/CI, AS/AI, KS/KI, WS/WI. Вообще, кошмарик конечно. Чем дальше в лес тем толще партизаны :) Чего-то наша идея сопряжения баз с каждым днем начинает все больше трещать и картинка с каждым днем все мрачнее :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 08:56
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Нет, DBCS и Unicode, кроме двухбайтовости, не имеют общего. Это - разные кодировки. Чтобы Graphic поддерживалась, надо создать базу в какой-то азиатской кодировке (какие-то поддерживают, какие-то нет). Т.е. ситуация - СУБД поддерживает, а база под её управлением не обязана. Чего-то наша идея сопряжения баз с каждым днем начинает все больше трещать и картинка с каждым днем все мрачнее Ну, я и подобным занимаюсь, только DB2 <-> Oracle. Но я выбрал репликацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 09:39
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
DB2В Сиквеле тоже нет битмаповых. начиная с MSSQL2000 есть бинарные если вас это устроит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 10:05
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
SQL1216N - говорит о том, что в _вашей_ _текущей_ кодировки базы эти типы данных не поддерживаются. Создайте базу в двухбайтной кодировке и вперед и спесней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 11:00
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
чтобы GRAPHIC, DBCLOB поддерживался нужно создать базу в кодировке UTF-8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 11:10
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
gardenmanчтобы GRAPHIC, DBCLOB поддерживался нужно создать базу в кодировке UTF-8 Если база юникодная, то GRAPHIC и DBCLOB "ненастоящие", т.е не DBCS, а UTF16, а зачем это при наличии UTF8? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 11:51
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Какие поддерживаются кодировки: http://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.udb.doc/admin/r0004565.htm?resultof=%22%31%32%30%38%22%20 В частности, японская кодировка IBM-943 - DBCS, но не UNICODE. Вот список всех DBCS: http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/ad/r0006854.htm?resultof=%22%64%62%63%73%22%20%22%64%62%63%22%20 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 13:01
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Lepsikначиная с MSSQL2000 есть бинарные если вас это устроитЗнаю, но не путайте теплое с мягким. Victor MetelitsaНу, я и подобным занимаюсь, только DB2 <-> Oracle. Но я выбрал репликацию.Не, в нашем случае репликация не катит. Скорее всего придется заниматься тем, чем не очень хотелось, а именно тащить часть структуры на MSSQL, особенно ту которая касается клиентской базы, и базы заказов. По крайней мере, уникодные Ёжики там будут проецироваться в ежиков без потери производительности на индексах и без тормозов и непоняток между DB2 и MSSQL. На DB2 пока оставим часть мертво связанную с аппаратурой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 14:07
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
UNICODE в не-UNICODE базах данных http://publib.boulder.ibm.com/infocenter/db2luw/v8//topic/com.ibm.db2.udb.doc/core/c0011583.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 14:19
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
О-о-о, а я про это забыл. Хм. Посмотрел в CREATE TABLE: # Tables created with CCSID UNICODE cannot be referenced in SQL functions or SQL methods (SQLSTATE 560C0). # An SQL statement that references a table created with CCSID UNICODE cannot invoke an SQL function or SQL method (SQLSTATE 53090). # Tables cannot have both the CCSID UNICODE clause and the DATA CAPTURE CHANGES clause specified (SQLSTATE 42613). # Declared global temporary tables cannot be created with CCSID UNICODE (SQLSTATE 56031). # SQL statements are always interpreted in the database code page. In particular, this means that every character in literals, hex literals, and delimited identifiers must have a representation in the database code page; otherwise, the character will be replaced with the substitution character. Не вдохновляет. С другой стороны, непонятна упёртость в "ёжиков" (я 10 лет просто не замечал этой "проблемы"; плюс на Oracle то же самое) и "незамечание" workaround'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 14:48
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
кхм-кхм Для сведения "ежиков" воедино в больших масштабах появилось целое направление софта - MDM (Master Data Management), или же по-нашему, поддержание нормативно-справочной информации в синхронизированном и актуальном состоянии. Это просто так, к сведению. Еще не зная таких высокомудрых понятий я делал таки практически тоже самое доступными средствами (LDAP, в его наилучшей имплементации IBM TDS) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 14:59
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Victor MetelitsaС другой стороны, непонятна упёртость в "ёжиков" (я 10 лет просто не замечал этой "проблемы"; плюс на Oracle то же самое) и "незамечание" workaround'а.Да нет никакой упертости, Виктор. По хорошему, клиент в базе должен быть записан, так как он значится. Например Мёдов, а не Медов. Кроме того имя, фамилия, отчество с большоой буквы. При поиске менеджер может искать и как Медова так и мёдова. Лучше бы, если бы он нашел сразу всех возможных, а не завел еще одного. Надеюсь вы с этим согласны. Да, если "ёжиков" отбросить, то можно все хранить например в одом регистре, при печати преобразовывать как-нибудь. Можно еще чего-нибудь придумать. Но вообще-то раз в DB2 с этим сложности, то спрашивается зачем мне с ними бороться, если в моем случае можно поручить это Сиквелу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 15:27
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 16:05
|
|||
|---|---|---|---|
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Victor Metelitsaдалее вы можете создать индекс по u_lastname, искать и сортировать по TRANSLATE(UCASE(lastname), 'Е', 'Ё') или прямо по u_lastname. "Накладные расходы" - лишняя колонка в таблице (когда и если появятся индексы по выражениям, надобность в ней отпадёт).Спасибо, Виктор. Но мы, похоже, все таки принимаем решение о переносу всего, кроме некоторых частей на Сиквел. Наверное, в нашем случае это даже правильнее. На DB2 пока поживут части связанные непосредственно с аппаратурой (исходников, блин, нету :( ), пока не найдем умельцев, которые их перенесут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.02.2006, 18:43
|
|||
|---|---|---|---|
|
|||
Как создать на DB2 [b]Case Insensitive[/b] базу? |
|||
|
#18+
Чем наличие Регистро независимости поможет не завести еще одного МЕДОВА?? Или наоборот если их должно быть два а в системе подразумевается один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=43&mobile=1&tid=1605485]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 419ms |

| 0 / 0 |
