Страница 1 из 1
Набор данных
Добавлено: 16 фев 2005, 12:09
Juice
Возникла такая задача: нужно сделать хранимую процедуру, которая будет работать в несколько этапов. Сначала она должна сделать выборку из нескольких таблиц, а затем уже идут различные действия с этой выборкой - поиск определенных строк, сложный анализ, потом тоже не простой алгоритм расчета основаный на этих даных. Вопрос: как наилучшим образом организовать работу с этой выборкой ? Пока мне на ум приходит только создать временную таблицу и разместить ее там. Может язык интербейс что-то такое поддерживает, типа наборов данных ? Все должно быть выполнено только в одной процедуре
Добавлено: 16 фев 2005, 17:00
Дмитрий
А View сделать не пробовал?

Добавлено: 16 фев 2005, 19:09
Juice
Понял, что остается только таблицу временную делать (просмотр не к сожалению не подойдет т.к. слишком долгая процедура , которая его будет формировать). Продолжаю писать хранимую процедуру. Пытаюсь в ней создать таблицу, на строчке CREATE TABLE tmp1234_ERT - выдает ошибку! Он что не поддерживает такого?
Добавлено: 16 фев 2005, 19:58
kdv
да. в тексте процедур операторы DDL не допускаются.
Добавлено: 17 фев 2005, 09:23
Дмитрий
просмотр не к сожалению не подойдет т.к. слишком долгая процедура , которая его будет формировать
А временную таблицу она не долго будет формировать?

Добавлено: 17 фев 2005, 10:03
Juice
Может я чего-то не до понимал ? View формируется при каждом запросе кнему, а временная таблица лишь один раз? Вот эта процедура формирования и есть долгая. Запросов к таблице будет много
Добавлено: 17 фев 2005, 10:31
Дмитрий
Дык и надо было написать, что будет много запросов. А то пишешь
Сначала она должна сделать выборку из нескольких таблиц, а затем уже идут различные действия с этой выборкой - поиск определенных строк, сложный анализ, потом тоже не простой алгоритм расчета основаный на этих даных.
Тогда только временную таблицу.
Добавлено: 21 фев 2005, 10:25
Ivan_Pisarevsky
Что мешает сделать как ФАК рекомендует?
в вольной интерпретации по памяти выглядит так:
временнтая таблица создается один раз, в ней обязательная колонка типа ИД_сессии+остальные столбцы, в процедуре генерируешь этот ИД_сессии и далее работаешь с таблицей: "селект фром врем_тайбл варе ид_сесии = сгенерированый_номерок" при конце процедуры: "делете фром врем_тэйбл варе ид_сесии = сгенерированый_номерок"