Mens vi bruker funksjoner eller prosedyrer i PostgreSQL, lar det oss formidle data fra funksjonsanropet til prosedyrene, og kan samtidig motta data fra funksjonene. Denne spesifikke handlingen eller funksjonaliteten gjøres bare gjennom parametrene. Når det gjelder diskusjonen av de navngitte parametrene, må vi erklære funksjoner. Så vi vil nå se hvordan funksjoner fungerer med PostgreSql.
Funksjoner
PostgreSQL -funksjoner blir også betraktet som prosedyrene. Disse brukes til å utføre operasjoner som vanligvis kan ta flere spørsmål hvis vi uten å bruke funksjoner vil utføre noen logikk. Men ved å lage funksjoner, kan vi utføre ethvert scenario i en enkelt prosedyre; Bare en funksjonsanrop er nødvendig for å starte operasjonen.
Syntaks
Opprett [eller erstatt] funksjon name_of_function (argumenter)Beskrivelse:
Det er to typer parametere som føres gjennom funksjonen.
Kalt parameter
Hvis vi spesifiserer parametrene til en funksjon ved å bruke en navngitt notasjon, er dette en navngitt parameter, og en pil med parameterverdien følger den.
Posisjonsparametere
Hvis vi direkte bruker posisjonsparametrenes verdier som en posisjonsnotasjon, må parametrene være oppført i samme rekkefølge som de er erklært. Mens det i tilfelle av navngitt notasjon er det ikke obligatorisk å spesifisere en ordre.
Gjennomføring
For å utdype konseptet med en navngitt parameter, vil vi først opprette en funksjon eller en prosedyre i PostgreSQL. En funksjon som heter 'l_u_case' er opprettet for å jobbe med strengene som er sendt til den gjennom en funksjonssamtale. Det konverterer ordene til over- eller små bokstaver. Ved å lage funksjonen er hovedfunksjonen parametrene som inneholder variabler for mottaksdata. Så i denne funksjonen har vi laget to teksttypevariabler for å lagre data i den. Og den tredje variabelen er en boolsk type. Det er velkjent at den boolske flaggvariableverdien er enten sann eller falsk. Så en variabel av store bokstaver er satt som usann som standard som standard. Dette betyr at hvis brukeren bruker en funksjonsanrop uten å nevne saksnavnet, enten øvre eller nedre, så som standard, blir teksten konvertert til små bokstaver, hvis den er i store bokstaver også.
Opprett funksjon l_u_case (en tekst, u boolsk standard falsk)SELECT -kommandoen brukes her for å velge saken ved å bruke den tredje variabelen. Hvis den tredje variabelen som er boolsk for store bokstaver er til stede, samkjører begge strengene som er til stede i "A" og "B" -variablene. Hver streng er sammenkoblet med et tomt mellomrom mellom dem. I det andre alternativet, hvis den boolske variabelen ikke er nevnt, blir ikke små bokstaver brukt med samme sammenkoblingsmetode. Ved utførelse vises følgende melding.
Nå vil vi bruke både den navngitte parameteren som en navngitt notasjon og en posisjonsnotasjon.
Posisjonell notasjon
I dette eksemplet blir funksjonssamtalen gjort med verdiene direkte skrevet uten å bruke noen variabel som et argument for funksjonssamtalen. Funksjonssamtalen oppnås ved å bruke en SELECT -setning. Navnet på en funksjon er skrevet med parametrene.
>> velg l_u_case ('linux', 'hint', sant);Ved utførelse er en stor bokstav av begge strengene sammenkoblet; Dette er fordi vi har nevnt store bokstaver som en tredje parameter.
Mens du fjerner den tredje parameteren, vil den resulterende verdien være i små bokstaver.
>> velg l_u_case ('linux', 'hint');Navngitt notasjon
Her er ikke verdiene direkte tilordnet variablene i parameteren, men de variablene vi bruker i funksjonene brukes også i funksjonssamtalen. Ved å gjøre dette vil alle variablene bli tildelt verdiene. En boolsk verdi 'U' er også tildelt en ekte verdi.
>> velg l_u_case (a => 'linux', b => 'hint', u => true);Dessuten er ikke operatøren som utstedes her et like tegn. Hvis du bruker et enkelt like tegn eller et annet tegn på stedet for denne operatøren, dannes en syntaksfeil.
Ved utførelsen av kommandoen ovenfor, vil du se at den samme strengen vises med store bokstaver. Tilsvarende, ved å fjerne den navngitte notasjonen for store bokstaver, vil strengene i små bokstaver vises som standard.
Foruten posisjonen og den navngitte notasjonen, er det en tredje form, en 'blandet' notasjon som inneholder både den navngitte og posisjonsnotasjonen. La oss vurdere det samme eksemplet for det som beskrevet ovenfor. Vi vil direkte nevne strengene i parameteren i funksjonssamtalen, mens den boolske variabelen 'U' vil bli tildelt verdien gjennom en navngitt parameter.
>> velg l_u_case ('linux', 'hint', u => true);Det er ingen endring i resultatet.
Eksempel 2
Her er et annet eksempel på en tabell som heter prøve; Vi bruker en "opprette" uttalelse for å lage en funksjon. To verdier vil bli byttet ved å bruke denne funksjonen. Begge variablene blir introdusert i funksjonen. Verdiene i disse variablene, sendt gjennom funksjonsparameteren, vil bli byttet ut.
Velg x, y til y, x;Utfør kommandoen, så vil du se at funksjonen opprettes. Nå skal vi utføre en enkel funksjonsanrop ved å bruke en posisjonsnotasjon. Vi vil bare bruke tallene som er akseptert av variablene erklært i funksjonen.
>> velg * fra prøve (531, 902);Ved utførelse kan du se at verdiene til begge variablene byttes ut. Men dette kan forveksle, ettersom noen kanskje ikke kjenner verdien av x og verdien av y på funksjonen for funksjonen samtale. Så dette problemet løses av navnparametrene. Hver verdi er tilordnet en variabel som en parameter i en tid av en funksjonsanrop.
>> Velg * fra Swapper (x => 198, y => 457);Når du utfører funksjonsanropet, tildeles begge verdiene. Og ved utførelse byttes hver verdi.
Konklusjon
'Postgres som heter Prosedyre' beskriver funksjonen, bruken. Det er to grunnleggende notasjoner av parametere. Begge blir forklart med eksempler slik at brukeren lett kan skille mellom begge disse notasjonene.