Как вызвать созданную функцию в pgAdmin

#postgresql #function #plpgsql

#postgresql #функция #plpgsql

Вопрос:

Я впервые создал динамическую функцию SQL и задаюсь вопросом, как правильно вызвать эту функцию? Вот код

 CREATE OR REPLACE FUNCTION functions.search_function(_columns text)  RETURNS TABLE(student text,  student_id text,  professor_name text,  subject text,  subject_time text,  room_number text,  building text)   LANGUAGE plpgsql AS $func$ DECLARE  _columns text := 'student_id::text, subject_timetime::text, building::text';  BEGIN  RETURN QUERY EXECUTE '  SELECT   student,  professor_name,  subject,  room_number,  ' || _columns || '  FROM "school_records_table" '  USING _columns; END $func$;  

Я получаю сообщение об ошибке, когда пытаюсь это сделать

 SELECT functions.searchandfilter2_function(  ('students') )  

Комментарии:

1. Можете ли вы показать сообщение об ошибке?

2. Попробуйте это : SELECT functions.searchandfilter2_function('students')

3. в нем говорится, что столбец не существует

4. ВЫПОЛНИТЕ ЗАПРОС НА ВОЗВРАТ «ВЫБЕРИТЕ ученика, имя преподавателя, предмет, номер комнаты, $1 ИЗ таблицы school_records_table» С ИСПОЛЬЗОВАНИЕМ _columns;

5. Эта функция не имеет для меня никакого смысла. Вы используете динамический список столбцов в SELECT, но ваша функция возвращает статический список столбцов результатов. Так зачем вообще нужен динамический SQL? Но вы не можете передавать имена столбцов с USING помощью предложения — оно используется только для передачи значений (не идентификаторов).