name

navnet (eventuelt skema-kvalificeret) af proceduren for at oprette.

argmode

Den måde et argument: IN INOUT, eller VARIADIC. Hvis udeladt, er standard IN. (OUT argumenter understøttes i øjeblikket ikke for procedurer. Brug INOUT i stedet.)

argname

navnet på et argument.,

argtype

datatypen(e) af procedurens argumenter (eventuelt skema-kvalificeret), hvis nogen. Argumenttyperne kan være base -, komposit-eller domænetyper eller kan henvise til typen af en tabelkolonne.

afhængigt af implementeringssproget kan det også være tilladt at angive “pseudotyper” såsom cstring. Pseudotyper angiver, at den faktiske argumenttype enten er ufuldstændigt specificeret eller uden for sættet med almindelige s .l-datatyper.

typen af en kolonne henvises til ved at skrivetable_name.,column_name%TYPE. Brug af denne funktion kan undertiden hjælpe med at gøre en procedure uafhængig af ændringer i definitionen af en tabel.

default_expr

et udtryk, der skal bruges som standardværdi, hvis parameteren ikke er angivet. Udtrykket skal være tvang til parameterens argumenttype. Alle inputparametre, der følger en parameter med en standardværdi, skal også have standardværdier.

lang_name

navnet på det sprog, som proceduren er implementeret i., Det kan være sql c internal, eller navnet på en bruger-defineret sprog, fx, plpgsql. Omslutter navnet i enkelte citater er forældet og kræver matchende sag.

TRANSFORM { FOR TYPE type_name}}

lister, der omdanner et opkald til proceduren, bør finde anvendelse. Transformerer Konverter mellem S .l-typer og Sprogspecifikke datatyper; se CREATE TRANSFORM. Proceduremæssige sprogimplementeringer har normalt hardkodet viden om de indbyggede typer, så de behøver ikke at blive opført her., Hvis en proceduremæssig sprogimplementering ikke ved, hvordan man håndterer en type, og der ikke leveres nogen transformation, falder den tilbage til en standardadfærd til konvertering af datatyper, men dette afhænger af implementeringen.

SECURITY INVOKER
SECURITY DEFINER

SECURITY INVOKER angiver, at proceduren skal udføres med rettighederne hørende til den bruger, der kalder det. Det er standard. SECURITY DEFINER angiver, at proceduren skal udføres med rettighederne for den bruger, der ejer den.,

nøgleordet EXTERNAL er tilladt for S .l-overensstemmelse, men det er valgfrit, da denne funktion i modsætning til I S .l gælder for alle procedurer, ikke kun eksterne.

SECURITY DEFINER procedure kan ikke udføre transaktionen kontrol-sætninger (for eksempel: COMMIT og ROLLBACK, afhængigt af sproget).,

configuration_parameter
value

SET klausul medfører, at den specificerede konfigurationsparameter indstilles til den specificerede værdi, når proceduren indtastes, og derefter gendannes til dens tidligere værdi, når proceduren afsluttes. SET FROM CURRENT gemmer værdien af den parameter, der er aktuel, når CREATE PROCEDURE udføres som den værdi, der skal anvendes, når proceduren indtastes.,

Hvis SET bestemmelse er knyttet til en procedure, så effekten af en SET LOCAL kommando udføres inde i proceduren for den samme variabel er begrænset til den procedure: konfiguration parameter forudgående værdi stadig er restaureret på procedure exit., Men et almindeligt SET kommando (uden LOCAL) tilsidesætter SET klausul, meget, som det ville gøre for en tidligere SET LOCAL kommando: virkningerne af en sådan kommando vil fortsætte efter proceduren exit, medmindre den aktuelle transaktion er rullet tilbage.

Hvis SET bestemmelse er knyttet til en procedure, da denne procedure ikke kan udføre transaktionen kontrol-sætninger (for eksempel: COMMIT og ROLLBACK, afhængigt af sproget).,

se sæt og kapitel 19 for at få flere oplysninger om tilladte parameternavne og-værdier.

definition

en strengkonstant, der definerer proceduren; betydningen afhænger af sproget. Det kan være et internt procedurenavn, stien til en objektfil, en s .l-kommando eller tekst på et proceduremæssigt sprog.

det er ofte nyttigt at bruge dollarcitat (se Afsnit 4.1.2.4) til at skrive proceduredefinitionsstrengen i stedet for den normale enkelt citatsynta.. Uden dollarcitat skal enkelte citater eller tilbageslag i proceduredefinitionen undgås ved at fordoble dem.,

obj_file link_symbol

Denne form for AS bestemmelse anvendes til dynamisk downloades C-sprog procedurer, når procedure navn i C-sproget kildekoden er ikke det samme som navnet på den SQL procedure. Strengen obj_file er navnet på den delte biblioteksfil, der indeholder den kompilerede C-procedure, og fortolkes som For LOAD-kommandoen. Strengen link_symbol er procedurens linksymbol, det vil sige navnet på proceduren i C-sprogets kildekode., Hvis linksymbolet udelades, antages det at være det samme som navnet på den s .l-procedure, der defineres.

når gentaget CREATE PROCEDURE opkald henviser til den samme objektfil, indlæses filen kun en gang pr. For at losse og genindlæse filen (måske under udvikling) skal du starte en ny session.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *