name

namnet (valfritt schema-kvalificerat) på proceduren för att skapa.

argmode

läget för ett argument:IN,INOUT ellerVARIADIC. Om det utelämnas är standardvärdet IN. (OUT argument stöds för närvarande inte för procedurer. Använd INOUT istället.)

argname

namnet på ett argument.,

argtype

datatypen / datatyperna för procedurens argument(eventuellt schemakvalificerade), om sådana finns. Argumenttyperna kan vara bas -, komposit-eller domäntyper, eller kan referera till typen av en tabellkolumn.

beroende på implementeringsspråket kan det också vara tillåtet att ange ”pseudotyper” som . Pseudotyper indikerar att den faktiska argumenttypen är antingen ofullständigt angiven eller utanför uppsättningen vanliga SQL-datatyper.

typen av kolumn refereras genom att skrivatable_name.,column_name%TYP. Att använda den här funktionen kan ibland bidra till att göra ett förfarande oberoende av ändringar i definitionen av en tabell.

default_expr

ett uttryck som ska användas som standardvärde om parametern inte anges. Uttrycket måste vara tvingande till parameterns argumenttyp. Alla indataparametrar som följer en parameter med ett standardvärde måste också ha standardvärden.

lang_name

namnet på det språk som proceduren implementeras i., Det kan vara sql, c, internal eller namnet på ett användardefinierat procedurspråk, t.ex. plpgsql. Att innesluta namnet i enstaka citat är föråldrat och kräver matchande kundcase.

TRANSFORM { FOR TYPE type_name}}

listor som omvandlar ett samtal till förfarandet bör gälla. Omvandlar konvertera mellan SQL-typer och Språkspecifika datatyper; se Skapa TRANSFORM. Procedurspråkimplementeringar har vanligtvis hårdkodad kunskap om de inbyggda typerna, så de behöver inte listas här., Om en procedurspråkimplementering inte vet hur man hanterar en typ och ingen omvandling levereras, kommer den att falla tillbaka till ett standardbeteende för att konvertera datatyper, men det beror på implementeringen.

SECURITY INVOKER
SECURITY DEFINER

SECURITY INVOKER indikerar att proceduren ska utföras med behörigheten för användaren som kallar den. Det är standard. SECURITY DEFINER anger att proceduren ska utföras med behörigheterna för användaren som äger den.,

nyckelordetEXTERNAL är tillåtet för SQL-överensstämmelse, men det är valfritt eftersom den här funktionen, till skillnad från i SQL, gäller alla procedurer inte bara externa.

aSECURITY DEFINER – proceduren kan inte utföra transaktionskontrollutdrag (till exempelCOMMIT ochROLLBACK, beroende på språk).,

configuration_parameter
value

klausulenSET gör att den angivna konfigurationsparametern ställs in på det angivna värdet när proceduren skrivs in och sedan återställs till dess tidigare värde när proceduren avslutas. SET FROM CURRENT sparar värdet för den parameter som är aktuell närCREATE PROCEDURE körs som det värde som ska tillämpas när proceduren anges.,

om enSET – klausul är kopplad till en procedur, begränsas effekterna av ettSET LOCAL – kommando som körs inuti proceduren för samma variabel till proceduren: konfigurationsparameterns tidigare värde återställs fortfarande vid procedurutgången., Ett vanligt SET – kommando (utan LOCAL) åsidosätter SET – klausulen, mycket som den skulle göra för ett tidigare SET LOCAL – kommando: effekterna av ett sådant kommando kommer att kvarstå efter procedurutgången, såvida inte den aktuella transaktionen rullas tillbaka.

om enSET – klausul är kopplad till en procedur kan den proceduren inte utföra transaktionskontrollutdrag (till exempelCOMMIT ochROLLBACK, beroende på språk).,

se SET och kapitel 19 för mer information om tillåtna parameternamn och värden.

definition

en strängkonstant som definierar proceduren; betydelsen beror på språket. Det kan vara ett internt procedurnamn, sökvägen till en objektfil, ett SQL-kommando eller text på ett procedurspråk.

det är ofta bra att använda dollarcitering (se avsnitt 4.1.2.4) för att skriva procedurdefinitionssträngen, snarare än den normala singelciteringssyntaxen. Utan att citera dollar måste alla enskilda citat eller backslashes i procedurdefinitionen undkomma genom att fördubbla dem.,

obj_file,link_symbol

denna form avAS används för dynamiskt belastningsbara C-språkprocedurer när procedurnamnet i C-språkkällkoden inte är samma som namnet på SQL-proceduren. Strängen obj_file är namnet på den delade biblioteksfilen som innehåller den kompilerade C-proceduren och tolkas som för LASTKOMMANDOT. Strängen link_symbol är procedurens länksymbol, det vill säga namnet på proceduren i källkoden för C-språk., Om länksymbolen utelämnas antas den vara densamma som namnet på SQL-proceduren som definieras.

NärCREATE PROCEDURE samtal refererar till samma objektfil laddas filen bara en gång per session. För att lossa och ladda om filen (kanske under utveckling), starta en ny session.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *