Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Поиск строки с символом № / 14 сообщений из 14, страница 1 из 1
20.04.2011, 16:43
    #37224917
_№№№_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
Кто нибудь сталкивался с такой ситуацией:
есть какое то поле строковое.
среди прочих значений в нем есть такого шаблона "текст_пробел_№текст"
Например, "пример №1234 эх"
Когда пытаешься найти эту строку на форме путем обычного ввести/выполнить запрос, вводя формат поиска %123%, то эту строку, в которой есть знак № запрос не возвращает.
Причем только если № и дальнейший текст были без пробела. Т.е., если бы было "пример № 1234 эх", и поиск все с тем же условием %123%, то строка бы нашлась
Или если условие поиска ограничено % только слева "%1234 эх", тоже находит.
Если задать поиск с самим символом № "%№123%", найдет.
А вот "%123% "в упор не видит.
Причем именно формс. В любом ином приложении таких заморочек нет.
Возможно, что то с кодировкой. Или символ № при вводе запроса в формсе является служебным, или ...?
...
Рейтинг: 0 / 0
21.04.2011, 10:53
    #37226105
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
_№№№_,

Код поиска в студию! Версия формсов?
Как вариант, если говорите что без пробелов находит, - убрать их, что-то вроде:
declare x varchar(50);
begin
x:=TRIM(:block.pole);
WHILE INSTR(x,' ')>0 LOOP
x:=REPLACE(x,' ','');
END LOOP;
:x:=x;
end;

искать уже в x
...
Рейтинг: 0 / 0
21.04.2011, 11:45
    #37226247
_№№№_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
mRdUKE,

версия 10-ка.
Да как выкрутить через Ж, это ясно, выкрутила уже давно. Но на одной конкретной форме. Встретится далее где то по формам такая необходимость опять так выкручиваться? имхо не есть гуд. Где то ж таки собака в другом порылась. Должно быть более глобальное тривиальное решение.
До этой ситуации KEY-EXEQRY не был переназначен, так что все по умолчанию. (теперь, ессна, переписала под себя, немного отличным от Вашего методом, но суть та же - "выкусить" символ "№" и искать уже без него)
...
Рейтинг: 0 / 0
21.04.2011, 12:30
    #37226387
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
_№№№_,

select 'yes' into :block.result from dual where :block.pole like '%123%';
exception when no_data_found then :block.result:='no';

...
Рейтинг: 0 / 0
21.04.2011, 13:52
    #37226613
_№№№_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
mRdUKE,
никакого кода, все посредством формсов.
базовый блок - F11/ctrl+F11
...
Рейтинг: 0 / 0
21.04.2011, 15:01
    #37226856
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
_№№№_,


...
Рейтинг: 0 / 0
21.04.2011, 15:57
    #37226979
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
Какой NLS_LANG на клиенте и в базе?
...
Рейтинг: 0 / 0
21.04.2011, 16:15
    #37227028
_№№№_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
Нашла в чем было дело.
Ради регистронезависимого поиска устанавливали
NLS_SORT=BINARY_AI
NLS_COMP=LINGUISTIC
Если убрать - все ищет "на ура". Осталось теперь решить как оставить и регистронезависимый поиск, но чтобы он не влиял в свою очередь и на результаты выборки
...
Рейтинг: 0 / 0
21.04.2011, 16:20
    #37227046
_№№№_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
где угодно выполнить

select count(*)
from test t
where t.note like '%ca%';
ALTER SESSION SET NLS_SORT=BINARY_AI;
ALTER SESSION SET NLS_COMP=LINGUISTIC;
select count(*)
from test t
where t.note like '%ca%';

получим разное значение выбранных строк )
...
Рейтинг: 0 / 0
21.04.2011, 16:23
    #37227059
_№№№_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
NLS_LANGUAGE AMERICAN
NLS_CHARACTERSET CL8MSWIN1251
...
Рейтинг: 0 / 0
21.04.2011, 16:25
    #37227064
_№№№_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
уже не трогаю формсы, этот же прикол просто на базе :) Так что тему можно переносить просто в oracle )))
...
Рейтинг: 0 / 0
22.04.2011, 16:43
    #37229243
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
Подтверждаю. Проверил на

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

Бага?
...
Рейтинг: 0 / 0
22.04.2011, 16:44
    #37229247
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
P.S. Проверял запросом

select * from (
select '123№ca123' note from dual ) t
where t.note like '%ca%';
...
Рейтинг: 0 / 0
22.04.2011, 17:41
    #37229361
_№№№_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск строки с символом №
фича )))))))))))))
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Поиск строки с символом № / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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