sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan overføres brugerdefineret type-array til Postgres-funktionen

Du kan bruge den alternative syntaks med en array literal i stedet for array-konstruktøren, som er en Postgres-funktionslignende konstruktion og kan forårsage problemer, når du skal sende værdier - som i en udarbejdet erklæring:

SELECT myschema.myfunc('0d6311cc-0d74-4a32-8cf9-87835651e1ee'
                  , '{"(0d6311cc-0d74-4a32-8cf9-87835651e1ee, 25)"
                    , "(6449fb3b-844e-440e-8973-31eb6bbefc81, 10)"}'::mytype[]);
 

Jeg tilføjede et linjeskift mellem de to rækketyper i arrayet til visning. Det er lovligt.

Sådan finder du den korrekte syntaks for enhver bogstaveligt?

Bare spørg Postgres. Her er en demo:

CREATE TABLE mytype (id uuid, amount numeric(13,4));

INSERT INTO mytype VALUES
  ('0d6311cc-0d74-4a32-8cf9-87835651e1ee', 25)
 ,('6449fb3b-844e-440e-8973-31eb6bbefc81', 10);

SELECT ARRAY(SELECT m FROM mytype m);
 

Returnerer:

{"(0d6311cc-0d74-4a32-8cf9-87835651e1ee,25.0000)","(6449fb3b-844e-440e-8973-31eb6bbefc81,10.0000)"}

db<>spil her

Enhver tabel (inklusive midlertidige tabeller) opretter implicit en rækketype med samme navn.



  1. Sådan udvikler du en offline-første indbygget Android-app

  2. Hvordan skriver man en funktion, der returnerer tekst eller heltalsværdier?

  3. Find forskel mellem tidsstempler i sekunder i PostgreSQL

  4. Fix:Adgang nægtet for brugeren 'root'@'localhost' i MariaDB