name

nimi (mahdollisesti kaava-pätevyys) menettelyn luoda.

argmode

– tilassa argumentti: IN, INOUT tai VARIADIC. Jos jätetään pois, oletusarvo on IN. (OUT argumentit eivät tällä hetkellä tue menettelyjä. Käytä INOUT sen sijaan.)

argname

nimi argumentti.,

argtype

tietotyyppi(s) menettelyn perustelut (mahdollisesti kaava-pätevä), jos sellaisia on. Argumenttityypit voivat olla base -, composite-tai domain-tyyppejä tai ne voivat viitata taulukon sarakkeen tyyppiin.

toteutuksesta Riippuen kieli saattaa myös olla oikeus määritellä ”pseudo-tyyppejä”, kuten cstring. Pseudotyypit osoittavat, että varsinainen argumenttityyppi on joko epätäydellisesti määritelty tai tavallisten SQL-tietotyyppien joukon ulkopuolella.

kolumnin tyyppiin viitataan kirjoittamalla table_name.,column_name % TYPE. Tämän ominaisuuden käyttäminen voi joskus auttaa tekemään menettelystä riippumattoman taulukon määritelmän muutoksista.

default_expr

ilmaus voidaan käyttää oletusarvo, jos parametria ei ole määritetty. Lausekkeen on oltava pakotettava parametrin argumenttityyppiin. Kaikilla oletusarvolla varustettua parametria seuraavilla syöttöparametreilla on oltava myös oletusarvot.

lang_name

kielen nimi, että menettely on toteutettu., Se voi olla sql, c, internal, nimen tai käyttäjän määrittämän menettelyn kielen, esim. plpgsql. Liittäen nimi puolilainausmerkeissä on vanhentunut ja vaatii vastaava tapaus.

TRANSFORM { FOR TYPE type_name}

luetteloita, jotka muuttavat kutsun menettelyyn, olisi sovellettava. Muuntaa muuntaa välillä SQL tyypit ja kielikohtaisia tietotyyppejä; katso luo muunnos. Prosessikielen toteutuksissa on yleensä hardcoded tietoa sisäänrakennetuista tyypeistä, joten niitä ei tarvitse luetella täällä., Jos käsittelykieli täytäntöönpano ei tiedä, miten käsitellä tyyppi ja ei-muunnos on mukana, se putoaa takaisin oletuksena käyttäytymistä muuntaa tietotyypit, mutta tämä riippuu toteutuksesta.

SECURITY INVOKER
SECURITY DEFINER

SECURITY INVOKER osoittaa, että menettely ei voida suorittaa oikeuksilla käyttäjä, joka kutsuu sitä. Se on oletusarvo. SECURITY DEFINER täsmentää, että menettely on suoritettava sen omistavan käyttäjän oikeuksilla.,

avain sana EXTERNAL on sallittu SQL-conformance, mutta se on valinnainen, koska, toisin kuin SQL, tämä ominaisuus koskee kaikkia menettelyjä ei ole vain ulkoisia.

SECURITY DEFINER menettely voi suorittaa liiketoimen ohjaus lausuntoja (esimerkiksi COMMIT ja ROLLBACK riippuen kieli).,

configuration_parameter
value

SET lauseke aiheuttaa määritetyn kokoonpanon parametri voidaan asettaa määritetyn arvon, kun menettely on tullut, ja sitten palauttaa sen ennen arvo, kun menettely poistuu. SET FROM CURRENT tallentaa parametrin arvo, joka on nykyinen, kun CREATE PROCEDURE toteutetaan, kuten arvo, jota sovelletaan, jos menettely on tullut.,

– Jos SET lauseke on kiinnitetty menettely, sitten vaikutukset SET LOCAL komennon sisällä menettely sama muuttuja on rajoitettu menettely: kokoonpano parametri on ennen arvo on edelleen palauttaa milloin menettely exit., Kuitenkin, tavallinen SET komento (ilman LOCAL) ohittaa SET lauseke, niin paljon kuin se tekisi aiempaan SET LOCAL komento: vaikutukset, kuten komento jatkuu sen jälkeen, kun menettely poistu, ellei nykyinen kauppa on rullattu takaisin.

– Jos SET lauseke on kiinnitetty menettelyn, niin että menettely ei voi suorittaa liiketoimen ohjaus lausuntoja (esimerkiksi COMMIT ja ROLLBACK riippuen kieli).,

katso asetuksesta ja luvusta 19 lisätietoja sallituista parametrin nimistä ja arvoista.

definition

merkkijono vakio määritellään menettely; merkitys riippuu kielen. Se voi olla sisäisen menettelyn nimi, polku esine-tiedoston, SQL-komento, tai tekstiä menettelyn kielen.

Se on usein hyödyllistä käyttää dollari lainaten (ks. Kohta 4.1.2.4) kirjoittaa menettelyn määritelmä merkkijono, sijaan normaali yksi lainaus syntaksi. Ilman dollarin lainaan, kaikki yhden lainauksia tai kenoviivoja menettelyn määritelmä on karannut kaksinkertaistamalla niitä.,

obj_file, link_symbol

Tämä muoto AS lauseketta käytetään dynaamisesti ladattavina C-kieli menettelyjä kun menettely nimi C-kielellä lähde koodi ei ole sama kuin nimi SQL-menettelyä. Merkkijono obj_file on nimi shared library-tiedosto, joka sisältää koottu C menettely, ja tulkitaan varten LATAA-komennolla. Merkkijono link_symbol menettely on linkki symboli, joka on, nimi menettelyn C-kielellä lähdekoodia., Jos linkkisymboli jätetään pois, sen oletetaan olevan sama kuin määriteltävän SQL-menettelyn nimi.

kun toistetaan CREATE PROCEDURE puhelut viittaavat samaan objektitiedostoon, tiedosto ladataan vain kerran istunnossa. Jos haluat purkaa ja ladata tiedoston uudelleen (ehkä kehityksen aikana), Aloita uusi istunto.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *