-
Доброго времени суток! Уважаемые, такая ситуация: 1. Есть запрос из БД в хранимой процедуре, отбирающий договора страхования по дате регистрации из БД. 2. Есть массив номеров договоров, закаченнных из файла через Delphi в хранимку.
Вопрос: Можно ли в Oracle соеденить этот массив с запросом так, как будто-бы массив это таблица БД?
-
where id in (1,2,3,6,5245,444) ?
-
Создай временную таблицу, залей туда массив и соединяй.
-
Таблицу создавать нельзя исходя из идеологии. Да, нужно что-то подобное "where id in (1,2,3,6,5245,444)" , толко число элементов множества неизвестно.
-
> [3] Lera © (25.12.08 16:58) > Таблицу создавать нельзя исходя из идеологии.
Мусульмане фанатики? 8-)
-
> Да, нужно что-то подобное "where id in (1,2,3,6,5245,444)" > , толко число элементов множества неизвестно.
Подавай входным параметром как строку и динамический exec. Наверняка в Oracle что-то подобное есть.
-
-
> Lera © (25.12.08 16:37)
что возвращает хранимка - nested table? курсор?
> Есть массив номеров договоров, закаченнных из файла через > Delphi в хранимку.
в хранимку ничего закачать нельзя, закачать можно во временную таблицу, nested table и т.д.
-
преобразовать строку с набором параметров в коллекцию, затем применить к ней псевдофункцию table. и станет возможным делать селект из коллекции
-
можно сделать хранимку типа CREATE PROCEDURE ID_LIST
RETURNS ID INTEGER
AS
BEGIN
ID = 1;
SUSPEND;
ID = 4;
SUSPEND
....
ID = N;
SUSPEND;
END и приджойнить ее к основной ХП.
-
... а перед этим еще и ib прилинковать к ораколу
|