es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo llamar a una función creada en PgAdmin

Creé una función SQL dinámica por primera vez y me pregunto cuál es la forma correcta de llamar a la función. Aquí está el código:

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$;

He estado recibiendo un error cuando intento esto:

SELECT functions.searchandfilter2_function(
    ('students') )
Tags:  , ,

Answer

  1. Avatar for davy.ai

    La forma correcta de llamar a la función sería:

    SELECT * FROM functions.search_function('student_id::text, subject_timetime::text, building::text');
    

    Esto devolverá una tabla con las columnas seleccionadas de la “school_records_table”.

    En el código proporcionado, parece haber una discrepancia entre el nombre de la función “search_function” y la función que se está llamando “searchandfilter2_function”. Además, el parámetro de entrada debe ser una cadena con las columnas deseadas, no solo ‘students’.

    Asegúrese de reemplazar la declaración de texto “_columns” dentro de la función con el parámetro de entrada que se le pase.

Comments are closed.