PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Таблица за връщане на съхранена процедура на Postgresql всички колони

Ако искате да върнете резултат, трябва да използвате return query в PL/pgSQL както е документирано в ръководството

CREATE OR REPLACE FUNCTION dwgcould.returnallcolumns(IN sessionId character varying)
  RETURNS SETOF public.mytable AS
$BODY$
BEGIN
  return query --<< this was missing
    SELECT * 
    FROM public.mytable 
    WHERE session_id = returnallcolumns.sessionId 
    ORDER BY pro_id DESC LIMIT 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;

Но нямате нужда от PL/pgSQL за това, проста SQL функция ще бъде по-ефективна:

CREATE OR REPLACE FUNCTION dwgcould.returnallcolumns(IN sessionId character varying)
  RETURNS SETOF public.mytable AS
$BODY$
    SELECT * 
    FROM public.mytable 
    WHERE session_id = returnallcolumns.sessionId 
    ORDER BY pro_id DESC LIMIT 1;
$BODY$
LANGUAGE sql;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL индексиране на varchar

  2. Добавянето на колона като външен ключ дава ГРЕШКА колона, посочена в ограничението за външен ключ, не съществува

  3. Попълване на множество таблици от един JSON обект с json_populate_recordset

  4. Защо setval() се проваля с връзка ... не съществува?

  5. Мога ли да използвам EXCEPTIONs в FOR LOOP, за да принудя продължение при грешка?