Страница 1 из 1

Список значений во вход. параметре хр. процедуры

Добавлено: 01 июл 2010, 12:23
samalex
Уважаемые знатоки!!! Работаю в Firebird 2.1.
Хочу передать в хр. процедуру строковый параметр (типа "1, 2, 3") для использования его в конструкции "in (...)".
Вот скрипт для создания ХП.

Код: Выделить всё

create or alter procedure SP_2 (
    ID_TYPE_WORK_SET varchar(10))
returns (
    ID_PREPARATION_TECH_DOC integer,
    ID_TYPE_WORK integer)
as
begin
  for select
    dp.id_preparation_tech_doc,
    dp.id_type_work
  from data_preparation_tech_doc dp
  where
    dp.id_type_work in (:ID_TYPE_WORK_SET)
  into
    :id_preparation_tech_doc,
    :id_type_work
  do
    suspend;
Хочу выбрать набор данных в соответствии с перечисленными через запятую значениями типа "int".
Но что-то не выходит. Не воспринимает Firebird мой параметр.
Кто мне подскажет, что не так?
Заранее благодарен.

Re: Список значений во вход. параметре хр. процедуры

Добавлено: 01 июл 2010, 12:54
kdv
Но что-то не выходит. Не воспринимает Firebird мой параметр.
потому что фигню пишете, с любой логической точки зрения. :) где Вы видели, чтобы параметр принимал СПИСОК значений, да еще знал, какого они внутри типа, и какой Вы используете разделитель?

www.ibase.ru/ibfaq.htm#inparam
на sql.ru был еще один пример, найдем.

Re: Список значений во вход. параметре хр. процедуры

Добавлено: 01 июл 2010, 13:04
samalex
http://www.ibase.ru/ibfaq.htm#inparam
на sql.ru был еще один пример, найдем.[/quote]

Офигенно. Заработало!!!
Большое спасибо!!!
Пользователь фильтр по нескольким значениям заказал. Я уже думал в программе динамически SQL формировать.
Но все и в хр. процедуре решилось.

Re: Список значений во вход. параметре хр. процедуры

Добавлено: 01 июл 2010, 17:35
kdv
вот еще пример
http://www.sql.ru/forum/actualthread.as ... re#6339918
но немного другое. Впрочем, алгоритм можно перекроить под собственные нужды. Если на входе блоб не нужен, можно поменять на строку.