powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / OOO4O не работает условие в IN заданное через параметр
6 сообщений из 6, страница 1 из 1
OOO4O не работает условие в IN заданное через параметр
    #39577644
c6h11o6na
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В PL/SQL Developer простой запрос отрабатывает правильно:
SELECT * FROM mytable WHERE item IN('111','222')

Использую подключение через "OracleInProcServer.XOraSession":
SELECT * FROM mytable WHERE item IN(:Items)

Если задать параметр:
Parameters.Add("Items", "111", 1)
Отрабатывает верно.

Задаю параметр:
Parameters.Add("Items", "'111','222'", 1) или Parameters.Add("Items", "111,222", 1)
Запрос ничего не возвращает.

Как правильно задать параметр?
...
Рейтинг: 0 / 0
OOO4O не работает условие в IN заданное через параметр
    #39577646
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c6h11o6naКак правильно задать параметр?

Никак, обломись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
OOO4O не работает условие в IN заданное через параметр
    #39577673
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ничего, что у вас два разных запроса. В первом в in перечисление, а во втором одна переменная. И ваш второй запрос в итоге будет иметь вид:
Код: plsql
1.
SELECT * FROM mytable WHERE item IN('111,222')
...
Рейтинг: 0 / 0
OOO4O не работает условие в IN заданное через параметр
    #39577682
c6h11o6na
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Parameters.Add("Items", "'111','222'", 1)

в этом случае тоже?
...
Рейтинг: 0 / 0
OOO4O не работает условие в IN заданное через параметр
    #39577692
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо либо так:
Код: plsql
1.
SELECT * FROM mytable WHERE item IN(:Items1, :Items2, ....)


Либо передавать строкой через разделитель и уже условие where менять например на поиск по вхождению instr + substr, но индекс не будет использоваться, либо преобразовать строку с разделителями в таблицу значений.
...
Рейтинг: 0 / 0
OOO4O не работает условие в IN заданное через параметр
    #39577711
c6h11o6na,

Код: plsql
1.
2.
3.
4.
5.
select *
  from mytable
 where item in (select regexp_substr(:Items, '([^,]*)(,|$)', 1, level, 'i', 1)
                  from dual
                connect by level <= 1 + regexp_count(:Items, ','))
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / OOO4O не работает условие в IN заданное через параметр
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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