Создание функции

Добрый день, возникла такая проблема
Нужно создать функцию на языке sql которая будет выполнять запрос вида
select $1 from $2
допусти её имя selectall,
тогда selectall(usename,pg_user) - выполняет запрос select usename from pg_user
Как ни пробывал, не получается
Заранее спасибо

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Читайте FAQ

спасибо тогда вопрос такой,

спасибо
тогда вопрос такой, пусть имя таблицы задается явно, тогда нужно создать функцию
select $1 from table
У меня при передаче параметра постгрес принимает параметр как строку, а не имя столбца, т.е. при запросе
func('column') - возвращается строка column
Пробовал в самой функции преобразовывать аргумент черзе name() но не получается =(
Спасибо

Да те же самые грабли. Откуда

Да те же самые грабли.
Откуда PostgreSQL на момент компиляции процедуры знает будет ли ваш $1 в списке полей таблицы? И что вообще вы поставите в этот $1 - может вы какую-либо синтаксическую конструкцию туда запишите.
Процедура должна вернуть значение определённого типа, а как она эта сделает, если при её выполнении возможна синтаксическая или иная ошибка? Сама компиляция процедуры в этом случае не пройдёт.

на самом деле все решается

на самом деле все решается созданием функций на языке plpgsql с использованием DECLARE

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023