name

a létrehozandó eljárás neve (opcionálisan séma-minősített).

argmode

Az argumentum módja: IN, INOUT vagy VARIADIC. Ha nincs megadva, az alapértelmezett érték IN. (OUT az eljárások argumentumai jelenleg nem támogatottak. Használja aINOUT helyett.)

argname

egy argumentum neve.,

argtype

az eljárás argumentumainak adattípusa(I) (opcionálisan schema-minősített), ha vannak ilyenek. Az argumentumtípusok lehetnek alap, kompozit vagy tartománytípusok, vagy hivatkozhatnak a táblázat oszlop típusára.

a megvalósítási nyelvtől függően engedélyezhető “pszeudo-típusok” megadása is, mint például a cstring. A pszeudo-típusok azt jelzik, hogy a tényleges argumentumtípus vagy hiányos, vagy a szokásos SQL adattípusok halmazán kívül esik.

az oszlop típusára a table_nameírás hivatkozik.,column_name%TYPE. Ennek a funkciónak a használata néha segíthet abban, hogy az eljárás független legyen a táblázat meghatározásának változásaitól.

default_expr

alapértelmezett értékként használható kifejezés, ha a paraméter nincs megadva. A kifejezésnek kényszeríthetőnek kell lennie a paraméter argumentum típusára. Az alapértelmezett értékkel rendelkező paramétert követő összes bemeneti paraméternek alapértelmezett értékekkel kell rendelkeznie.

lang_name

annak a nyelvnek a neve, amelyben az eljárást végrehajtják., Ez lehet sql, c, internal, vagy egy felhasználó által definiált eljárási nyelv neve, például plpgsql. A név egyetlen idézőjelbe helyezése elavult, megfelelő esetet igényel.

TRANSFORM { FOR TYPE type_name } }

listák, amelyek átalakítják a hívást, hogy az eljárás kell alkalmazni. Transforms convert between SQL types and language-specific data types; lásd: átalakítás létrehozása. Az eljárási nyelvi implementációk általában hardcoded ismeretekkel rendelkeznek a beépített típusokról, így ezeket nem kell itt felsorolni., Ha az eljárási nyelv végrehajtása nem tudja, hogyan kell kezelni egy típusa, valamint nem átalakítani szállított, majd vissza az alapértelmezett viselkedés konvertáló adattípusok, de ez attól függ, hogy a végrehajtás.

SECURITY INVOKER
SECURITY DEFINER

SECURITY INVOKER azt jelzi, hogy az eljárást a hívó felhasználó jogosultságaival kell végrehajtani. Ez az alapértelmezett. SECURITY DEFINER meghatározza, hogy az eljárást az azt birtokló felhasználó jogosultságaival kell végrehajtani.,

aEXTERNAL kulcsszó megengedett az SQL konformance esetén, de opcionális, mivel az SQL-től eltérően ez a szolgáltatás nem csak külső eljárásokra vonatkozik.

aSECURITY DEFINER az eljárás nem hajthatja végre a tranzakciós ellenőrzési nyilatkozatokat (példáulCOMMIT ésROLLBACK, a nyelvtől függően).,

configuration_parameter
value

a SET záradék a megadott konfigurációs paramétert a megadott értékre állítja be, amikor az eljárást beírják, majd az eljárás kilépésekor visszaállítja annak előzetes értékét. SET FROM CURRENTelmenti az aktuális paraméter értékét, amikor a CREATE PROCEDURE az eljárás beírásakor alkalmazandó értékként kerül végrehajtásra.,

Ha egySET záradék van csatolva egy eljáráshoz, akkor az ugyanazon változó eljárásán belül végrehajtott parancs hatásai az eljárásra korlátozódnak: a konfigurációs paraméter előzetes értéke továbbra is visszaáll az eljárás kilépésekor., Azonban egy közönséges SET parancs (LOCAL nélkül) felülírja a SET záradékot, ugyanúgy, mint egy korábbi parancs esetén: az ilyen parancs hatásai az eljárás kilépése után is fennmaradnak, kivéve, ha a A jelenlegi tranzakció visszahúzódik.

Ha egySET záradékot csatolnak egy eljáráshoz, akkor ez az eljárás nem hajthatja végre a tranzakciós ellenőrzési nyilatkozatokat (példáulCOMMIT ésROLLBACK, a nyelvtől függően).,

az engedélyezett paraméternevekkel és értékekkel kapcsolatos további információkért lásd a SET és a 19.fejezetet.

definition

az eljárást meghatározó karakterlánc állandó; a jelentés a nyelvtől függ. Ez lehet egy belső eljárás neve, egy objektumfájl elérési útja, egy SQL parancs vagy egy eljárási nyelvű szöveg.

gyakran hasznos a dollár idézése (lásd a 4.1.2.4.szakaszt) az eljárás definíciós karakterlánc megírásához, nem pedig a szokásos egyetlen idézet szintaxishoz. Dollár idézés nélkül, az eljárás meghatározásában szereplő egyetlen idézőjelet vagy visszalépést meg kell szüntetni, ha megduplázzuk őket.,

obj_file, link_symbol

a AS záradéknak ezt a formáját használják dinamikusan betölthető C nyelvi eljárásokhoz, ha a C nyelv forráskódjában szereplő eljárás neve nem azonos az SQL eljárás nevével. A obj_file karakterlánc a lefordított C eljárást tartalmazó megosztott könyvtárfájl neve, amelyet a LOAD paranccsal értelmeznek. A link_symbol karakterlánc az eljárás hivatkozási szimbóluma, vagyis az eljárás neve A C nyelvű forráskódban., Ha a link szimbólum elhagyásra kerül, akkor feltételezzük, hogy ugyanaz, mint a definiált SQL eljárás neve.

ismételt CREATE PROCEDURE a hívások ugyanarra az objektumfájlra vonatkoznak, a fájl csak egyszer töltődik be munkamenetenként. A fájl kirakásához és újratöltéséhez (talán fejlesztés közben) indítson el egy új munkamenetet.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük