Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / OOO4O не работает условие в IN заданное через параметр / 6 сообщений из 6, страница 1 из 1
29.12.2017, 00:57
    #39577644
c6h11o6na
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OOO4O не работает условие в IN заданное через параметр
В 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
29.12.2017, 01:18
    #39577646
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OOO4O не работает условие в IN заданное через параметр
c6h11o6naКак правильно задать параметр?

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

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


Либо передавать строкой через разделитель и уже условие where менять например на поиск по вхождению instr + substr, но индекс не будет использоваться, либо преобразовать строку с разделителями в таблицу значений.
...
Рейтинг: 0 / 0
29.12.2017, 09:40
    #39577711
OOO4O не работает условие в IN заданное через параметр
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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / OOO4O не работает условие в IN заданное через параметр / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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