CREATE TYPE param_list AS TABLE OF number;
CREATE PROCEDURE test_params(
p_list IN param_list
) AS
item number;
BEGIN
IF p_list.count>0 THEN --Если список не пуст
item := p_list.first; -- Получаем первый элемент списка
LOOP
--делаем чтото с item
EXIT WHERE item=p_list.last; --Выходим когда текущий обработаный является последним
item := p_list.next(item); --Если не вышли - перходим к следующему (он есть)
END LOOP;
END IF;
END;
Oracle: процедуры с переменным числом параметров
Подскажите, как можно передать неопределенное число параметров в процедуру в Oracle?
Пока только одно решение вижу - создать таблицу, перед вызовом процедуры наполнять ее, процедура из нее будет брать значения и очищать. Но при таком методе - какой смысл в процедуре?
Решение простейшее - создается тип-таблица и передается как параметр. Пример такой:
Код:
Либо так, либо использовать PL/SQL-таблицу
Цитата: laba
Либо так, либо использовать PL/SQL-таблицу
Какой смысл так делать если задача - сделать клиента тоньше, а сервер толще?
Цитата: MaitreDesir
... создать таблицу, перед вызовом процедуры наполнять ее, процедура из нее будет брать значения и очищать. Но при таком методе - какой смысл в процедуре?
Цитата: Sonia
Какой смысл так делать если задача - сделать клиента тоньше, а сервер толще?
Что имелось ввиду?