|
В Oracle очень примитивный LIKE? Господа, подскажите, pls, как сравнить строчку
|
|||
---|---|---|---|
#18+
Верно ли, что в Oracle очень примитивный LIKE и нельзя сказать типа: "Выбрать все строки где пятый символ - {цифра от 1 до 8 или буква F} ". Очень жаль. Или я не прав? Памажите пожалуйста, очень нужно написать запрос, выбирающий строки по шаблону. что же так и писать where mystr like '_1%' or mystr like '_2%' or mystr like '_3%' or mystr like '_4%' ... mystr like '_F%' ? но у меня более сложный шаблон, на MSSQL он пишется так: like '_[1-8F]___810_[0-9][0-9][^A]%'. А как это сделать в отличной и прекрасной RDBMS Oracle? Читаю доку, а там - только про % и _ и ESCAPE. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2002, 11:47 |
|
В Oracle очень примитивный LIKE? Господа, подскажите, pls, как сравнить строчку
|
|||
---|---|---|---|
#18+
Да действительно в стандартном языке такое написать нельзя, но это не значит, что это нельзя сделать! Предлагаю вариант: -пишется функция в которую передаются три параметра(исходный текст, маска) Эта функция анализирует маску и исходный текст и принимает решение, например 0 -подходит, а 1 -нет -в запросе в условиях отбора пишешь WHERE ... func(column,mask)=0 ... И все будет работать PS: Может ORACLE и не сделал это, поскольку решил переложить труд написания функции на ВАС. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2002, 13:35 |
|
В Oracle очень примитивный LIKE? Господа, подскажите, pls, как сравнить строчку
|
|||
---|---|---|---|
#18+
"Выбрать все строки где пятый символ - {цифра от 1 до 8 или буква F} ". Не обязательно в данном случае использовать LIKE substr(поле,5,1) in ('1','2','3','4','5','6','7','8','F') Нет идеальных языков. В любом языке что-то лучше, а что-то хуже. В Oracle есть то, чего нет в вашем MSSQL и боюсь еще не скоро появится (например объектов). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2002, 13:56 |
|
В Oracle очень примитивный LIKE? Господа, подскажите, pls, как сравнить строчку
|
|||
---|---|---|---|
#18+
в принципе я согласен с предыдущим, только вот на счет объектов он не прав... объекты уже в принципе есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2002, 14:29 |
|
В Oracle очень примитивный LIKE? Господа, подскажите, pls, как сравнить строчку
|
|||
---|---|---|---|
#18+
Написать такую функцию, разбирающую регулярные выражения - достаточно нетривиальная задача (желающие в этом убедиться могут посмотреть исходники Perl, впрочем там регулярные выражения гораздо мощнее). Может есть что-нибудь готовое? Не может не быть! Ну посудите сами, я неделю как работаю с Ora а мне уже это нужно. Все так круто и (в отличие от MSSQL) правильно. А продвинутого LIKE нету.. Должно быть что-то взамен.. А что касается чего где есть а чего нет - так в MSSQL вместе с остальными продуктами MS есть все что есть в Oracle и даже больше. Только написано все так криво.. и работает все так #уево.. "мелкософт" - очень точное определение. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2002, 15:11 |
|
В Oracle очень примитивный LIKE? Господа, подскажите, pls, как сравнить строчку
|
|||
---|---|---|---|
#18+
2 Shmak: Будь проще, используй функционал Java. Благо у Оракла своя внутренняя "жаба", причем неплохая. Вот тебе и действительно "все что есть у М$" Кстати, для определенности -- приходится работать и с Oracle и с MSSql2000 -- у каждого свои задачи и оба меня устраивают в свете решения СВОИХ задач ) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.05.2002, 08:48 |
|
|
start [/forum/topic.php?fid=52&msg=32028228&tid=1993357]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 295ms |
total: | 414ms |
0 / 0 |