name
navn (eventuelt skjema-kvalifiserte) av prosedyren for å opprette.
argmode
modus for et argument: IN
, INOUT
, eller VARIADIC
. Hvis utelatt, standard er IN
. (OUT
argumentene er for tiden ikke støtte for prosedyrer. Bruk INOUT
i stedet.)
argname
navnet på et argument.,
argtype
datatype(s) av prosedyren anførsler (eventuelt skjema-kvalifiserte), hvis noen. Argumentet typer kan være base, kompositt, eller domene typer, eller kan henvise til den type en tabellkolonne.
Avhengig av gjennomføringen språk det kan også være tillatt å angi «pseudo-typer», for eksempel cstring
. Pseudo-typer indikerer at den faktiske argumentet type er enten ufullstendig angitte eller utenfor sett av vanlige SQL datatyper.
skriv inn av en kolonne er det refereres til ved å skrive
. Ved hjelp av denne funksjonen kan noen ganger bidra til å gjøre en prosedyre som er uavhengig av endringer i definisjonen av en tabell.table_name
.,column_name
%TYPE
default_expr
Et uttrykk for å bli brukt som standard verdi hvis parameteren ikke er angitt. Uttrykket må være coercible til argumentet type parameter. Alle parametere følgende parameter med en standardverdi må ha standard verdier som godt.
lang_name
navnet på språket at prosedyren er gjennomført i., Det kan være sql
, c
, internal
, eller navnet på en bruker-definert prosessuelle språk, f.eks., plpgsql
. Vedlagt navnet i enkle anførselstegn er ugyldig, og krever matchende tilfelle.
TRANSFORM { FOR TYPE
type_name
} }
Lister som forvandler et anrop til den prosedyren som bør gjelde. Forvandler konvertere mellom SQL-typer og språk-spesifikke datatyper, se OPPRETTE TRANSFORM. Prosessuelle språk implementeringer som regel har faste kunnskap om den innebygde typer, så de trenger ikke å være oppført her., Hvis en saksbehandlingsfeil språk gjennomføringen ikke vet hvordan de skal håndtere en type og ingen forvandle er levert, vil det falle tilbake til en standard virkemåte for konvertering av datatyper, men dette avhenger av gjennomføringen.
SECURITY INVOKER
SECURITY DEFINER
SECURITY INVOKER
angir at prosedyren skal utføres med rettighetene til den brukeren som kaller det. Som standard. SECURITY DEFINER
angir at prosedyren skal utføres med rettighetene til brukeren som eier den.,
nøkkelord EXTERNAL
er tillatt for SQL avvik, men det er valgfritt siden, i motsetning til i SQL, er denne funksjonen gjelder for alle prosedyrer ikke bare ytre seg.
En SECURITY DEFINER
prosedyren ikke kan utføre transaksjonen kontroll-setninger (for eksempel COMMIT
og ROLLBACK
, avhengig av hvilket språk).,
configuration_parameter
value
SET
klausulen fører til den angitte konfigurasjon parameter for å bli satt til den oppgitte verdien når prosedyren er angitt, og deretter restaurert til sin tidligere verdi når prosedyren går ut. SET FROM CURRENT
lagrer verdien av parameteren som er gjeldende når CREATE PROCEDURE
utføres som verdi skal anvendes når prosedyren er angitt.,
Hvis en SET
klausulen er knyttet til en prosedyre, da effekten av en SET LOCAL
utførte kommandoen inne i prosedyre for samme variabel er begrenset til prosedyre: konfigurasjon parameterens verdi før er fortsatt gjenopprettes på prosedyre avslutt., Imidlertid, en vanlig SET
– kommandoen (uten LOCAL
) overstyrer SET
klausulen, mye som det ville gjøre for en tidligere SET LOCAL
– kommandoen: virkninger av en slik kommando vil vedvare etter prosedyren exit, med mindre den aktuelle transaksjonen er rullet tilbake.
Hvis en SET
klausulen er knyttet til en prosedyre, så at prosedyren ikke kan utføre transaksjonen kontroll-setninger (for eksempel COMMIT
og ROLLBACK
, avhengig av hvilket språk).,
Se SATT og Kapittel 19 for mer informasjon om tillatt parameter navn og verdier.
definition
En streng konstant definere prosedyre; meningen er avhengig av språket. Det kan være en intern prosedyre navn, banen til et objekt fil, en SQL-kommando, eller tekst i en prosessuell språk.
Det er ofte nyttig å bruke dollar sitere (se Punkt 4.1.2.4) for å skrive prosedyren streng definisjon, snarere enn den normale enkelt sitat syntaks. Uten dollar sitere, noen enkle anførselstegn eller omvendte skråstreker i prosedyren definisjon må være rømt ved å doble dem.,
obj_file
, link_symbol
Denne formen for AS
klausulen er brukt for dynamisk lastbare C-språk prosedyrer når prosedyren navn i C-språk kildekoden er ikke det samme som navnet på SQL-prosedyren. Strengen obj_file
er navnet på delt bibliotek-fil som inneholder kompilert C-prosedyre, og er tolket som for LASTE-kommandoen. Strengen link_symbol
er prosedyren er lenke-symbolet, som er navnet på prosedyre i C-språk kildekoden., Hvis koblingen symbolet er utelatt, antas å være det samme som navnet på SQL-prosedyren bli definert.
Når det gjentas CREATE PROCEDURE
anrop refererer til samme objekt-fil er bare lagt inn en gang per økt. For å losse og laste filen (kanskje under utvikling), starte en ny økt.