Ebben az oktatóanyagban megismerheti a megnevezett blokkok (eljárások és függvények) létrehozásának és végrehajtásának részletes leírását.
Az Eljárások és függvények azok az alprogramok, amelyek létrehozhatók és elmenthetők az adatbázisban adatbázis objektumokként. Hívhatók vagy hivatkozhatók a többi blokkon belül is.
Ettől eltekintve kitérünk a két alprogram közötti főbb különbségekre. Ezenkívül megvitatjuk az Oracle beépített funkcióit.
Ebben az Oracle Stored Procedure oktatóanyagban megismerheti
- Terminológiák a PL / SQL alprogramokban
- Mi az eljárás a PL / SQL-ben?
- Mi a funkció?
- Az eljárás és a funkció közötti hasonlóságok
- Eljárás Vs. Funkció: Főbb különbségek
- Beépített funkciók PL / SQL-ben
Terminológiák a PL / SQL alprogramokban
Mielőtt megismernénk a PL / SQL alprogramokat, megvitatjuk a különféle terminológiákat, amelyek ezen alprogramok részét képezik. Az alábbiakban bemutatjuk azokat a terminológiákat, amelyeket megvitatni fogunk.
Paraméter:
A paraméter bármely érvényes PL / SQL adattípus változója vagy helyőrzője, amelyen keresztül a PL / SQL alprogram kicseréli az értékeket a fő kóddal. Ez a paraméter lehetővé teszi az alprogramok bevitelét és az ezekből való kivonatot.
- Ezeket a paramétereket a létrehozáskor az alprogramokkal együtt kell meghatározni.
- Ezeket a paramétereket az alprogramok hívó utasításai tartalmazzák, hogy kölcsönhatásba lépjenek az értékekkel az alprogramokkal.
- Az alprogramban a paraméter adattípusának és a hívó utasításnak meg kell egyeznie.
- Az adattípus méretét nem szabad megemlíteni a paraméterek deklarálásakor, mivel a méret dinamikus ehhez a típushoz.
Céljuk alapján a paramétereket a következők közé sorolják
- IN paraméter
- OUT paraméter
- IN OUT paraméter
IN paraméter:
- Ez a paraméter az alprogramok bevitelére szolgál.
- Ez egy csak olvasható változó az alprogramokon belül. Értékeik az alprogramon belül nem módosíthatók.
- A hívó utasításban ezek a paraméterek lehetnek változó vagy literális érték vagy kifejezés, például számtani kifejezés, például '5 * 8' vagy 'a / b', ahol 'a' és 'b' változók .
- Alapértelmezés szerint a paraméterek IN típusúak.
OUT paraméter:
- Ez a paraméter az alprogramok kimenetének lekérésére szolgál.
- Ez egy írási-írási változó az alprogramokon belül. Értékeik az alprogramokon belül megváltoztathatók.
- A hívó utasításban ezeknek a paramétereknek mindig változónak kell lenniük, hogy megtartsák az aktuális alprogramok értékét.
IN OUT paraméter:
- Ezt a paramétert használjuk mind bemenet megadásához, mind kimenet megszerzéséhez az alprogramokból.
- Ez egy írási-írási változó az alprogramokon belül. Értékeik az alprogramokon belül megváltoztathatók.
- A hívó utasításban ezeknek a paramétereknek mindig változónak kell lenniük, hogy megtartsák az alprogramok értékét.
Ezeket a paramétertípusokat meg kell említeni az alprogramok létrehozásakor.
VISSZATÉRÉS
A RETURN az a kulcsszó, amely arra utasítja a fordítót, hogy kapcsolja át a vezérlést az alprogramról a hívó utasításra. Az alprogramban a RETURN egyszerűen azt jelenti, hogy a vezérlésnek ki kell lépnie az alprogramból. Amint a vezérlő megtalálja a RETURN kulcsszót az alprogramban, az ezt követő kód átugrásra kerül.
Normális esetben a szülő vagy a fő blokk meghívja az alprogramokat, majd a vezérlés átkerül az említett szülő blokkról a hívott alprogramokra. Az RETURN az alprogramban visszaadja a vezérlést a szülőblokkjuknak. Funkciók esetén a RETURN utasítás is visszaadja az értéket. Ennek az értéknek az adattípusát mindig megemlítik a függvény deklarálásakor. Az adattípus bármilyen érvényes PL / SQL adattípus lehet.
Mi az eljárás a PL / SQL-ben?
A Eljárás a PL / SQL egy alprogram egység, amely egy csoport PL / SQL, hogy lehet nevezni a nevét. A PL / SQL minden egyes eljárásának megvan a maga egyedi neve, amelyre hivatkozni lehet és meghívható. Ez az alprogram egység az Oracle adatbázisban adatbázis objektumként van tárolva.
Megjegyzés: Az alprogram nem más, mint eljárás, és manuálisan kell létrehozni a követelményeknek megfelelően. A létrehozás után adatbázis-objektumokként tárolódnak.
Az alábbiakban bemutatjuk az eljárás alprogram egység jellemzőit a PL / SQL-ben:
- Az eljárások a program önálló blokkjai, amelyek az adatbázisban tárolhatók.
- Ezekre a PLSQL eljárásokra a nevükre hivatkozva lehet felhívni a PL / SQL utasítások végrehajtásához.
- Főleg egy folyamat végrehajtására használják PL / SQL-ben.
- Lehet beágyazott blokkja, vagy definiálható és beágyazható a többi blokkba vagy csomagba.
- Tartalmaz deklarációs részt (opcionális), végrehajtási részt, kivételkezelő részt (opcionális).
- Az értékeket át lehet adni az Oracle eljárásba, vagy paraméterek útján lehívhatók az eljárásból.
- Ezeket a paramétereket bele kell foglalni a hívó utasításba.
- Egy SQL eljárásnak lehet egy RETURN utasítása, amely visszaadja a vezérlőt a hívó blokknak, de a RETURN utasítással nem adhat vissza értékeket.
- Az eljárásokat nem lehet közvetlenül a SELECT utasításokból meghívni. Meghívhatók egy másik blokkból vagy az EXEC kulcsszóval.
Szintaxis:
CREATE OR REPLACE PROCEDURE( … )[ IS | AS ] BEGIN EXCEPTION END;
- A CREATE PROCEDURE utasítja a fordítót, hogy hozzon létre új eljárást az Oracle-ben. A „VAGY CSERE” kulcsszó arra utasítja a fordítást, hogy a meglévő eljárást (ha van) cserélje le az aktuálisra.
- Az eljárás nevének egyedinek kell lennie.
- Az „IS” kulcsszót akkor kell használni, ha az Oracle-ben tárolt eljárás be van ágyazva néhány másik blokkba. Ha az eljárás önálló, akkor az „AS” lesz használva. Ezen a kódolási szabványon kívül mindkettőnek ugyanaz a jelentése.
1. példa: Eljárás létrehozása és meghívása az EXEC használatával
Ebben a példában egy olyan Oracle eljárást fogunk létrehozni, amely a nevet bemenetnek veszi, és az üdvözlő üzenetet kimenetként kinyomtatja. Az eljárás meghívásához az EXEC parancsot fogjuk használni.
CREATE OR REPLACE PROCEDURE welcome_msg (p_name IN VARCHAR2)ISBEGINdbms_output.put_line (‘Welcome '|| p_name);END;/EXEC welcome_msg (‘Guru99’);
Kód Magyarázat:
- 1. kódsor: Az eljárás létrehozása „welcome_msg” névvel és egy „IN” típusú „p_name” paraméterrel.
- 4. kódsor: Az üdvözlő üzenet kinyomtatása a bemenet nevének összefűzésével.
- Az eljárás összeállítása sikeres.
- 7. kódsor: Az eljárás meghívása az EXEC paranccsal a „Guru99” paraméterrel. Az eljárás végrehajtásra kerül, és az üzenet "Welcome Guru99" néven kerül kinyomtatásra.
Mi a funkció?
A Funkciók önálló PL / SQL alprogram. A PL / SQL eljáráshoz hasonlóan a függvényeknek is egyedi névvel lehet hivatkozni. Ezeket PL / SQL adatbázis-objektumokként tárolják. Az alábbiakban bemutatjuk a funkciók néhány jellemzőjét.
- A függvények önálló blokkok, amelyeket főként számítási célokra használnak.
- A függvény a RETURN kulcsszóval adja vissza az értéket, és ennek az adattípusát a létrehozáskor határozzák meg.
- A függvénynek vagy vissza kell adnia egy értéket, vagy fel kell emelnie a kivételt, vagyis a visszatérés kötelező a függvényekben.
- A DML utasítás nélküli funkció közvetlenül meghívható a SELECT lekérdezésben, míg a DML művelettel rendelkező függvény csak más PL / SQL blokkokból hívható meg.
- Lehet beágyazott blokkja, vagy definiálható és beágyazható a többi blokkba vagy csomagba.
- Tartalmaz deklarációs részt (opcionális), végrehajtási részt, kivételkezelő részt (opcionális).
- Az értékeket átadhatjuk a függvénynek, vagy a paramétereken keresztül beolvashatjuk az eljárásból.
- Ezeket a paramétereket bele kell foglalni a hívó utasításba.
- A PLSQL függvény az OUT paramétereken keresztül is visszaadhatja az értéket, nem a RETURN használatával.
- Mivel mindig visszaadja az értéket, a hívó utasításban mindig hozzárendeli operátorral kíséri a változókat.
Szintaxis
CREATE OR REPLACE FUNCTION( )RETURN [ IS | AS ] BEGIN EXCEPTION END;
- A CREATE FUNCTION utasítja a fordítót egy új függvény létrehozására. A „VAGY CSERE” kulcsszó arra utasítja a fordítót, hogy cserélje le a meglévő függvényt (ha van ilyen) az aktuálisra.
- A Funkció névnek egyedinek kell lennie.
- A RETURN adattípust meg kell említeni.
- Az „IS” kulcsszót fogjuk használni, amikor az eljárás be van ágyazva néhány más blokkba. Ha az eljárás önálló, akkor az „AS” lesz használva. Ezen a kódolási szabványon kívül mindkettőnek ugyanaz a jelentése.
1. példa: Funkció létrehozása és hívása Anonymous Block használatával
Ebben a programban egy olyan függvényt fogunk létrehozni, amely a nevet bemenetnek veszi, és az üdvözlő üzenetet kimenetként adja vissza. Névtelen blokkot és kijelölési utasítást fogunk használni a függvény meghívásához.
CREATE OR REPLACE FUNCTION welcome_msgJune ( p_name IN VARCHAR2) RETURN VAR.CHAR2ISBEGINRETURN (‘Welcome ‘|| p_name);END;/DECLARElv_msg VARCHAR2(250);BEGINlv_msg := welcome_msg_func (‘Guru99’);dbms_output.put_line(lv_msg);END;SELECT welcome_msg_func(‘Guru99:) FROM DUAL;
Kód Magyarázat:
- 1. kódsor: Az Oracle függvény létrehozása „welcome_msg_func” névvel és egy „IN” típusú „p_name” paraméterrel.
- 2. kódsor: a visszatérési típus deklarálása VARCHAR2 néven
- 5. kódsor: A „Welcome” összefűzött érték és a paraméterérték visszaadása.
- 8. kódsor: Névtelen blokk a fenti függvény meghívásához.
- 9. kódsor: A változó deklarálása adattípussal megegyezik a függvény visszatérési adattípusával.
- 11. kódsor: A függvény meghívása és a visszatérési érték feltöltése az „lv_msg” változóra.
- 12. kódsor: A változó értékének kinyomtatása. A kimenet, amelyet itt kap, a "Welcome Guru99"
- 14. kódsor: Ugyanazon funkció meghívása a SELECT utasítással. A visszatérési érték közvetlenül a standard kimenetre irányul.
Az eljárás és a funkció közötti hasonlóságok
- Mindkettő más PL / SQL blokkokból meghívható.
- Ha az alprogramban felvetett kivételt nem kezeljük az alprogram kivételkezelés szakaszában, akkor az tovább fog terjedni a hívó blokkba.
- Mindkettőnek annyi paramétere lehet, amennyi szükséges.
- Mindkettőt adatbázis objektumként kezeljük a PL / SQL-ben.
Eljárás Vs. Funkció: Főbb különbségek
Eljárás | Funkció |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Beépített funkciók PL / SQL-ben
A PL / SQL különféle beépített függvényeket tartalmaz a karakterláncokkal és a dátum adattípussal való együttműködéshez. Itt láthatjuk a gyakran használt függvényeket és azok használatát.
Konverziós függvények
Ezeket a beépített funkciókat használják arra, hogy az egyik adattípust átalakítsák egy másik adattípusra.
Funkció neve | Használat | Példa |
---|---|---|
TO_CHAR | A másik adattípust karaktertípussá alakítja | TO_CHAR (123); |
TO_DATE (karakterlánc, formátum) | A megadott karakterláncot dátumra konvertálja. A karakterláncnak meg kell egyeznie a formátummal. | TO_DATE ('2015-JAN-15', 'ÉÉÉÉ-HH-NN'); Kimenet: 2015.01.15 |
TO_NUMBER (szöveg, formátum) | Átalakítja a szöveget a megadott formátum számtípusára. A „9” információ a számjegyek számát jelöli | Válassza a TO_NUMBER ('1234', '9999') lehetőséget a kettős közül; Kimenet: 1234 Válassza a TO_NUMBER ('1 234,45', '9 999,99') lehetőséget a kettősből; Kimenet: 1234 |
Húrfüggvények
Ezeket a függvényeket használják a karakter adattípusán.
Funkció neve | Használat | Példa |
---|---|---|
INSTR (szöveg, karakterlánc, kezdet, időtartam) | Megadja az adott szöveg helyzetét az adott karakterláncban.
| Válassza ki az INSTR ('AIRPLANE', 'E', 2,1) lehetőséget a kettős kimenetből : 2 Válassza az INSTR ('AIRPLANE', 'E', 2,2) lehetőséget a kettős kimenet közül: 9 ( E második előfordulása) |
SUBSTR (szöveg, kezdet, hossz) | Megadja a fő karakterlánc szubstring értékét.
| válassza ki a szubsztrátumot ('repülőgép', 1,7) a kettős kimenetből : aeropla |
FELSŐ (szöveg) | Visszaadja a megadott szöveg nagybetűjét | Válassza ki a felsőt ('guru99') a kettősből; Kimenet : GURU99 |
LOWER (szöveg) | Visszaadja a megadott szöveg kisbetűit | Válasszon alacsonyabbat ('repülőgép') kettősből; Kimenet : repülőgép |
INITCAP (szöveg) | Visszaadja a megadott szöveget a kezdőbetűvel nagybetűvel. | Válasszon ('guru99') a kettős kimenetből : Guru99 Válassza ki ('az én történetem' 'a kettős kimenetből : Saját történet |
HOSSZ (szöveg) | Visszaadja az adott karakterlánc hosszát | Válassza a LENGTH ('guru99') lehetőséget a kettős közül; Kimenet : 6 |
LPAD (szöveg, hossz, pad_kar) | Párnázza a karakterláncot a bal oldalon a megadott hosszúságig (teljes karakterlánc) az adott karakterrel | Válassza ki az LPAD-t ('guru99', 10, '$') a kettősből; Kimenet : $$$$ guru99 |
RPAD (szöveg, hossz, pad_kar) | Párnázza a karakterláncot a jobb oldalon a megadott hosszúságig (teljes karakterlánc) az adott karakterrel | Válassza ki az RPAD ('guru99', 10, '-') kettős kimenetből : guru99 ---- |
LTRIM (szöveg) | Levágja a szövegből a vezető szóközt | Válassza ki az LTRIM ('Guru99') lehetőséget a kettős közül; Kimenet : Guru99 |
RTRIM (szöveg) | Levágja a szöveg mögötti fehér helyet | Válassza ki az RTRIM ('Guru99') lehetőséget a kettős közül; Kimenet ; Guru99 |
Dátum függvények
Ezek olyan funkciók, amelyeket a dátumokkal való manipulációra használnak.
Funkció neve | Használat | Példa |
---|---|---|
ADD_MONTHS (dátum, hónapok száma) | Hozzáadja az adott hónapokat a dátumhoz | ADD_MONTH ('2015-01-01', 5.); Kimenet : 2015.01.05 |
SYSDATE | Visszaadja a kiszolgáló aktuális dátumát és idejét | Válassza a SYSDATE lehetőséget a kettősből; Kimenet : 2015.10.4. 14:11:43 |
TRUNC | A dátumváltozó kerekítése a lehetséges alacsonyabb értékre | válassza a sysdate, a TRUNC (sysdate) lehetőséget a kettősből; Kimenet : 2015.10.04 14:12:39 PM 2015.04.4 |
KEREK | A dátumot a legközelebbi határig kerekíti, akár magasabbra, akár alacsonyabbra | Válassza ki a sysdate, ROUND (sysdate) lehetőséget a kettős kimenetről : 2015.10.04. 14:14:34. |
MONTHS_BETWEEN | Visszaadja a két dátum közötti hónapok számát | Válassza a MONTHS_BETWEEN (sysdate + 60, sysdate) lehetőséget a kettős kimenetből : 2 |
Összegzés
Ebben a fejezetben a következőket tanultuk.
- Hogyan hozzuk létre az Eljárást és annak különböző hívási módjait
- Hogyan hozzuk létre a Funkciót és annak különböző hívási módjait
- Az eljárás és a funkció közötti hasonlóságok és különbségek
- Paraméterek és RETURN közös terminológiák a PL / SQL alprogramokban
- Gyakori beépített funkciók az Oracle PL / SQL-ben