Добрый день, возникла такая проблема
Нужно создать функцию на языке sql которая будет выполнять запрос вида
select $1 from $2
допусти её имя selectall,
тогда selectall(usename,pg_user) - выполняет запрос select usename from pg_user
Как ни пробывал, не получается
Заранее спасибо
Читайте FAQ
http://postgresql.ru.net/docs/extented_FAQ.html#Q003
спасибо тогда вопрос такой,
спасибо
тогда вопрос такой, пусть имя таблицы задается явно, тогда нужно создать функцию
select $1 from table
У меня при передаче параметра постгрес принимает параметр как строку, а не имя столбца, т.е. при запросе
func('column') - возвращается строка column
Пробовал в самой функции преобразовывать аргумент черзе name() но не получается
Спасибо
Да те же самые грабли. Откуда
Да те же самые грабли.
Откуда PostgreSQL на момент компиляции процедуры знает будет ли ваш $1 в списке полей таблицы? И что вообще вы поставите в этот $1 - может вы какую-либо синтаксическую конструкцию туда запишите.
Процедура должна вернуть значение определённого типа, а как она эта сделает, если при её выполнении возможна синтаксическая или иная ошибка? Сама компиляция процедуры в этом случае не пройдёт.
на самом деле все решается
на самом деле все решается созданием функций на языке plpgsql с использованием DECLARE