sql >> Database >  >> RDS >> PostgreSQL

functie met setwaarde aangeroepen in context die geen set kan accepteren

  1. Noem je Set Returning Function in een FROM-component.
  2. Geef altijd uw typen op.

Het heet een Set Returning Function , maar u wilt het samengestelde type specificeren

Dit is helemaal geldig,

RETURNS SETOF RECORD $$

Het kan echter zijn dat u het moet aanroepen met,

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

De context waarin je geen ongetypeerde SRF kunt noemen, is er een die geen tabeldefinitie heeft. Deze syntaxis kan vervelend worden, dus het is gewoon gemakkelijker om RETURNS SETOF RECORD te wijzigen naar

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

en gebruik de functie zonder de kolomdefinitielijst

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

Vind meer informatie in de documenten



  1. Equivalent van SQL Server aan Sleep():de WAITFOR-instructie

  2. MySQL 8.0.11-fout verbinding maken met caching_sha2_password de opgegeven module kan niet worden gevonden

  3. Omzetten van NOT IN naar NOT EXISTS

  4. Django - Wijzig een ForeignKey-relatie in OneToOne