среда, 6 июня 2007 г.
Новый OpenSource проект
На www.sourceforge.net зарегистрировал новый исследовательский проект DaReManager. Исследования будут посвящены изучению общих принципов построения Информационных систем. Вернее, идеи уже готовы и опробованы в различных проектах. Осталось выстроить красивую теорию и реализовать в одном проекте.
понедельник, 4 июня 2007 г.
Хранимые процедуры с переменным числом параметров
В СУБД иногда необходимо создать хранимую функцию или процедуру с переменным числом параметров. Но большинство СУБД такую возможность не поддерживают. Рассмотрим вариант (скорее обходной маневр) создания такой функции в PostgreSQL. Суть решения заключается в создании и вызове функции с переменным числом параметров в специальном виде, например:
> SELECT my_function('123 AS param1, 456 AS param2, 789 AS param3');
Значения входящих параметров внутри функции можно получить, составив запросы в следующем виде:
> SELECT INTO l_param1 rec.param1 FROM (SELECT 123 AS param1, 456 AS param2, 789 AS param3) AS rec;
> SELECT INTO l_param2 rec.param2 FROM (SELECT 123 AS param1, 456 AS param2, 789 AS param3) AS rec;
> SELECT INTO l_param3 rec.param3 FROM (SELECT 123 AS param1, 456 AS param2, 789 AS param3) AS rec;
Подробнее описано здесь: http://docs.google.com/Doc?id=ddzmh9s3_87dgw9rn
Возможно, кому-то покажется странным такой метод, однако он весьма эффективен и проверен на практике в различных задачах.
> SELECT my_function('123 AS param1, 456 AS param2, 789 AS param3');
Значения входящих параметров внутри функции можно получить, составив запросы в следующем виде:
> SELECT INTO l_param1 rec.param1 FROM (SELECT 123 AS param1, 456 AS param2, 789 AS param3) AS rec;
> SELECT INTO l_param2 rec.param2 FROM (SELECT 123 AS param1, 456 AS param2, 789 AS param3) AS rec;
> SELECT INTO l_param3 rec.param3 FROM (SELECT 123 AS param1, 456 AS param2, 789 AS param3) AS rec;
Подробнее описано здесь: http://docs.google.com/Doc?id=ddzmh9s3_87dgw9rn
Возможно, кому-то покажется странным такой метод, однако он весьма эффективен и проверен на практике в различных задачах.
Подписаться на:
Комментарии (Atom)