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

функция със стойност на набор, извикана в контекст, който не може да приеме набор

  1. Извикайте функцията за връщане на набор в клауза FROM.
  2. Винаги посочвайте типовете си.

Нарича се функция за връщане на набор , но искате да посочите съставния тип

Това е напълно валидно,

RETURNS SETOF RECORD $$

Може обаче да се наложи да го извикате с,

SELECT email, user_id
FROM 
    app.lookup_email(4,730035455897450,6,'u')
    AS t(email text, user_id integer)

Контекстът, в който не можете да извикате нетипизиран SRF, е този, който няма дефиниция на таблица. Този синтаксис може да стане неприятен, така че е по-лесно да промените RETURNS SETOF RECORD до

RETURNS TABLE(email text, user_id integer) AS $$

и използвайте функцията без списъка с дефиниции на колони

SELECT email, user_id
FROM app.lookup_email(4,730035455897450,6,'u')

Намерете повече информация в документите



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

  2. postgres regexp_replace иска да разреши само a-z и A-Z

  3. Postgres ръчно променя последователността

  4. Изчислете следващия първичен ключ - на определен формат

  5. Премахнете една, неуникална стойност от масив