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

Как да върна таблица по тип ред в PL/pgSQL

Това, което имате досега, изглежда добре. Липсващата съставка:полиморфни типове .

CREATE OR REPLACE FUNCTION change_val(_tbl_type anyelement)
  RETURNS SETOF anyelement  -- problem solved
  LANGUAGE plpgsql AS
$func$
BEGIN
   RETURN QUERY EXECUTE format(
      'UPDATE %s SET val = 2 RETURNING *;'
     , pg_typeof(_tbl_type))
     );
END
$func$;

Обадете се (важно):

SELECT * FROM change_val(NULL::some_tbl);

db<>fiddle тук
Стар sqlfiddle

Вижте (последен абзац):




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете конкретни данни от дадено XML съдържание, като използвате клаузата WHERE

  2. Apache Cayenne / PostgreSQL:твърде много клиенти вече имат грешка

  3. ScaleGrid PostgreSQL на VMware Cloud Infrastructure

  4. pg_ctl Съвети и трикове

  5. Typecast низ към цяло число