Динамический Select

Gozo
Дата: 27.02.2007 13:46:56
Есть запрос типа

Select mtl_kind
From batch
Where batch.mtl_kind_oid in (22,23,24,25)

Все работает нормально, но проблема в том, что список параметров, по которому осуществляется выборка, находится в поле другой таблицы. (список периодически изменяется).

Как подставить в запрос ссылку на поле списка?
alex-ls
Дата: 27.02.2007 13:48:01
Select mtl_kind
From batch
Where batch.mtl_kind_oid in (select fld from tbl)
-k2-
Дата: 27.02.2007 13:48:11
Where batch.mtl_kind_oid in (select som_field from some_table ..)
orawish
Дата: 27.02.2007 13:49:10
Gozo
Есть запрос типа

Select mtl_kind
From batch
Where batch.mtl_kind_oid in (22,23,24,25)

Все работает нормально, но проблема в том, что список параметров, по которому осуществляется выборка, находится в поле другой таблицы. (список периодически изменяется).

Как подставить в запрос ссылку на поле списка?


Where batch.mtl_kind_oid in (select bla from blabla where..)
Gozo
Дата: 27.02.2007 14:31:04
Наверное не точно сформулировал вопрос =(

Надо передать строку из элементов. В поле заносится список значений ... мне нужно вынуть строку и вставить его параметром в запрос.
Ввод переменной не дал результата.
Ы
Дата: 27.02.2007 14:37:56
Gozo
Наверное не точно сформулировал вопрос =(

Надо передать строку из элементов. В поле заносится список значений ... мне нужно вынуть строку и вставить его параметром в запрос.
Ввод переменной не дал результата.

А зачем? Where batch.mtl_kind_oid in (select fld from tbl) саме то что вам нужно...
NightGhost
Дата: 27.02.2007 14:38:16
Если поле Varchar2
вроде как есть механизм встроенная функция (позабыл название)
которая выполняет преобразование строки в список
который затем можно подставить
orawish
Дата: 27.02.2007 14:40:26
Gozo
Наверное не точно сформулировал вопрос =(

Надо передать строку из элементов. В поле заносится список значений ... мне нужно вынуть строку и вставить его параметром в запрос.
Ввод переменной не дал результата.
Тогда, поиск должен дать результат.
Этот вопрос всплывает регулярно.
Напр:
Where instr(','||batch.mtl_kind_oid||',',','||:v||',') > 0 
где :v содержит строку 22,23,24,25
alex-ls
Дата: 27.02.2007 14:41:15
NightGhost
Если поле Varchar2

не надо такие поля заводить, надо делать "detail" таблицу и добавлять туда строки. Соотвественно IN (SELECT fld FROM...) будет при этом работать
NightGhost
Дата: 27.02.2007 14:42:25
я то в курсе но вопрос задавался именно в таком контексте
если поле Nested Table то ответ очевиден