powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate Repository, nativeQuery. передать массив как параметр запроса
10 сообщений из 35, страница 2 из 2
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919509
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
in (p1, p2, ...) это (p1 or p2 or p3 or ...)

В Oracle можно пойти разными путями, самый простой, но не самый "интересный"
поместить список во временную таблицу. Более интересные варианты, сделать через коллекцию
с запросом из коллекции, коллекцию можно объявить на уровне пакета и заполнить вызовами
написанной для этого процедуры, в этом случае можно повторно использовать данные пока состояние пакета живо.
Но я бы просто формировал CLOB и либо табличной либо конвейерной функцией его парсил на стороне Oracle,
выборка будет иметь вид select имя_поля from table(имя_пакета.имя_функции(сформированный нами clob));
...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919515
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev
пока состояние пакета живо.
да. В клиент сервере так и делают. Но там длинный коннект с состоянием, а тут веб. Обезличенный коннект из пула.
Надо смотреть откуда коллекции взялись на клиенте (аппСервер) . Зачем они там.
...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919524
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Тогда парсить CLOB, можно стандартными средствами, если CLOB содержит XML.
...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919542
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev,
Конечно можно всяко.
Если строку с разделителем распарсить на массив или таблу то там 1-2 строчки.
select regexp_substr(....) f from t
connect by....
...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919563
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Когда список большой, всяко лучше чем в in запихивать
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with t (id, val) as
(
            select 3,  'val3'  from dual
  union all select 5,  'val5'  from dual
  union all select 7,  'val7'  from dual
  union all select 10, 'val10' from dual
  union all select 22, 'val22' from dual
)
, x as
(
  select x.*
  from xmltable('/Parameters/p'
       passing xmltype('<Parameters><p>2</p><p>3</p><p>4</p><p>5</p><p>10</p></Parameters>')                    
       columns p number(10) path '/') x
)
select t.*
from t, x
where t.id = x.p

...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919566
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev,
Да.
Тут мне интересна архитектура - почему большой)))
...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919573
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev

IMHO Жесть
...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919575
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
) ну он десктоп вариант привел. Есть же пихают оракле типы в java сервер. Тоже жесть).
...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919576
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

В реальной ситуации я бы написал конвейерную функцию читающую clob построчно,
каждый параметр в новую строку и никакого парсинга.

А вообще Oracle сам по себе жесть с какого ракурса не посмотри, имхо)))
...
Рейтинг: 0 / 0
Hibernate Repository, nativeQuery. передать массив как параметр запроса
    #39919586
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iOracleDev
А вообще Oracle сам по себе жесть
главное что на MS не похож))
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate Repository, nativeQuery. передать массив как параметр запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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