Tárolt program egység, 3. oldal
· Ha a fordítás sikeres, a végrehajtható kód (p-kód) tárolja a szótárban adatbázisban, és a funkciót is lehet nevezni
· Ha a fordítás sikeres volt, és a keletkezett p-kód tárolt függvény lehet nevezni minden eszköz, amely támogatja a PL / SQL. A tárolt függvény hívható részeként a kifejezés PL / SQL vagy javaslata SQL.
SQL> CREATE OR csere funkció emp_sal (v_job IN varchar2)
2 VISSZA SZÁM
4 v_sal_inner emp.sal% TYPE;
6 SELECT Sal INTO v_sal_inner SZÁRMAZÓ EMP ahol az alacsonyabb (job) = ALSÓ (v_job);
7. RETURN v_sal_inner;
SQL> Változó h_sal SZÁMA
SQL> Execute: h_sal: = emp_sal (elnök)
PL / SQL-eljárás sikeresen befejeződött.
SQL> PRINT h_sal
Hívjon tárolt függvényeket SQL
Tárolt függvények is lehet nevezni részeként SQL kifejezéseket kell elvégeznie bonyolult számításokat, növekvő teljesítmény SQL lekérdezés (korlátozó mintavételi vonalak tárolt függvények használják a WHERE, és nem az alkalmazás) vagy komplex manipulálása karakteres adat (például adatok kódolását) . A tárolt függvények bárhol lehet használni a beépített SQL funkciókat lehet használni:
· A SELECT utasítás kiválasztáslistán
· A javaslatok WHERE, miután
· A javaslatok ORDER BY, GROUP BY
· A javaslat ÉRTÉKEK INSERT parancs
· A javaslat UPDATE SET parancs
SQL> CREATE OR csere funkció pres_sal (v_sal számban)
2 VISSZA SZÁM
4 v_sal_inner emp.sal% TYPE;
6. SELECT INTO sal v_sal_inner FROM emp ahol az alacsonyabb (job) = 'elnök';
7 RETURN v_sal_inner * 0,1 + v_sal;
SQL> SELECT ename, sal, pres_sal (sal) FROM emp ahol az alacsonyabb (job) = 'jegyző';
ENAME SAL PRES_SAL (SAL)
ADAMS 1100 1600
MILLER 1300 1800
Azonban a tárolt függvényt használt SQL, bizonyos feltételeknek teljesülniük kell:
· Az egyetlen SQL tárolt függvények helyett lehet használni az eljárás
· A tárolt függvény legyen egysoros, mint egy csoportot
· A tárolt funkció csak a paramétereket. Paraméterek OUT és IN OUT nem engedélyezettek
· Típusai ezeket a paramétereket kell CHAR, dátum, szám. Az adattípusok BOOLEAN, TABLE, RECORD nem engedélyezettek
· A visszatérő típusúnak kell lennie egy belső típus az Oracle adatbázis
· A továbbítására vonatkozó eljárást a paraméterek csak helyzeti
· A tárolt függvény nem tudja módosítani az adatokat az adatbázis táblákat. INSERT adatkezelési parancsok frissítésére, törlésére nincs engedélyezve
· Hívás rutinok, amelyek megsértik a fenti feltételek nem engedélyezett
Removal tárolt függvény
Törölheti a tárolt funkció használatakor DDL parancs drop funkció.
SQL> drop funkció emp_sal;
SQL> drop funkció pres_sal;
Összehasonlítás az eljárások és függvények
A tárolt eljárások megegyeznek a tárolt függvény visszaküldi a kiszámított értékeket a hívó környezetben. Ezért meg kell világosan megérteni a különbséget eljárások és függvények kiválasztani a megfelelő stratégiát a tervezési program logika. Hozzon létre egy eljárást, hogy a műveletsornak jövőbeni használatra, és hozzon létre egy függvényt kiszámított értéket vissza kell küldeni a hívó környezetben. Az eljárás tartalmaz egy paramétert OUT, könnyen átírható függvényében
Ezek hívható SQL
Az ingatlan a tárolt eljárások és függvények
Javítása alkalmazások teljesítményét. SQL előforduló tárolt eljárások azonos szintaxist. Következésképpen a későbbi kivégzések már elemzett SQL megtalálhatók lesznek a közös SQL területen, amely jelentősen csökkenti a válaszidőt. Szintén a tárolt eljárások maguk értik fordításkor helyett végrehajtását. Emellett csökkenti a futási rutinok.
Továbbfejlesztett támogatás az alkalmazások számára. Ugyanaz a rutin lehet használni a különböző alkalmazások, így elegendő, hogy módosítsa a programiroda, kijavítása helyett az összes alkalmazást, amelyben használják.
Biztonság és az adatok sértetlenségét. Ahhoz, hogy a felhasználó módosíthatja az adatokat a szubrutin, meg kell, hogy csak az a megtiszteltetés, hogy ezt a programot egységet. Ez segít megakadályozni a jogosulatlan hozzáférést az adatok közvetlenül, megkerülve a szoftver alkalmazás logikáját. Ezen túlmenően, a rutin lehetővé teszi, hogy automatikusan elvégzi kapcsolódó tevékenységek adatokat frissíteni egyetlen tranzakció, amely megvédi az adatokat elvesztése ellen Integrity.
Kezelése tárolt eljárások
Az alkotás, a kivitelezés, módosítani és törölni a tárolt program egységek szükség van a megfelelő rendszer és az objektum jogosultságokat.
Így a felhasználó létrehozni saját programot egységek a rendszerben, a rendszer jogosultság szükséges: Szoftver egységek a saját rendszerben lehet újrafordítani, hogy fut, vagy eltávolítani, mert ez a kiváltság nem szükséges.
· Készítsen (bármilyen) ELJÁRÁS - a jogot arra, hogy hozzon létre egy tárolt program egységek saját (vagy bármilyen) program
· Megváltoztat ELJÁRÁS - jobb újrafordítani a programot egységek bármely séma
· Ejtsen ELJÁRÁS - a jogot, hogy törölje a programot egységek a rendszerben
· Hajt végre semmilyen ELJÁRÁS - a jogot, hogy bármilyen program egységek
A felhasználó, aki létrehozta az alprogramot, lehet, hogy valakinek a tárgy kiváltság, hogy ezt a programot egységet.
Alapértelmezésben Tárolt rutinok és SQL utasítást is hívott egy tárolt programú egység fut felhasználó jogosultságával, aki létrehozta. Emiatt objektumjogosultságai tárgyak hivatkozott a rutin, nincs szükség, ha a tárgyak nem ugyanolyan szerkezetű, mint a rutin is (a tulajdonos a tárgy mindig a kiváltság, hogy őket). Egyrészt ez jó, mert manipulálni tárgyakat a programon keresztül egységnek mindössze az a megtiszteltetés, hogy végre ez a rutin. Másrészt, az ilyen rutinok mereven kötve a rendszer, amelyben azokat tárolják, ami okozhat némi kellemetlenséget. Például, egy és ugyanazon táblázatot osztályon van egyszerre két rendszer: Scott és Blake. és a tárolt eljárást hoz létre az áramkör CREATE_DEPT Scott: