Lehetõségünk van külsõ programkódból is futtatni a tárolt eljárásokat, illetve függvényeket. Az alábbiakban található egy részletes leírás a PL/SQL nyelv függvényeinek és eljárásainak Java nyelven készített programból történõ futtatásához. Lépések:
Egy api, ami megtalálható a Java SE, illetve a Java EE JDK-ban. Tartalmazza azokat az osztályokat, melyek az adatbázis lekérdezéséhez és módosításához használandók. A relációs adatmodellhez igazodik.
Adatbázis kapcsolat létrehozása Java oldalonA Connection objektum felelõs a Java kódban az adatbázis kapcsolat létrehozásáért. Tartalmazza az adatbázis adatait, melyek a következõk a teljesség igénye nélkül:
A getConnection paraméterei a következõk: URL (mindig jdbc:-al kezdõdik, a többi része a driver készítõjétõl függ), felhasználónév, jelszó
Készítsük el a tárolt eljárásunk, amit meghívunk.Ez a függvény egy nevet vár paraméterül és visszadja a Hello és a paraméterben kapott név konkatenációját. Miután megírtuk a függvényt fordítsuk be az adatbázisba.
Újra a Java résznél vagyunk, most elkészítjük a lényegi részt. A tárolt eljárások meghívásához szükséges Java implementációt a CallableStatement objektum tartalmazza. Ennek két féle változata van, az egyik tartalmaz egy visszatérési értéket, míg a másik nem. A kettõ közül a megfelelõ kiválasztása nem a mi feladatunk, ezt a Java virtuális gép futási idõben dönti el. A kiválasztás során figyelembe veszi a virtuális gép, hogy van-e visszatérési értéke az adott függvénynek (ebbõl csak egy lehet). A bemenõ paraméterek ettõl függetlenül, lehetnek csak bemenõ, csak kimenõ vagy bemenõ és kimenõ paraméterek is.
Létrehozunk egy CallableStatement-t utasítást, majd beállítjuk a paramétereket és lefuttatjuk azt. Fontos, hogy ha szeretnénk elérni a meghívott kód visszatérési értékét, azt ki kell regisztrálnunk. Ezután már elérhetõ a get+Típus utasítással. A bemenõ paramétereket a set+Típus utasítással állíthatjuk be. Az elsõ paraméter a sorszáma, míg a második a beállítandó érték.
A Hello.java osztályt még le kell fordítani, hogy a Java virtuális gép számára is értelmezhetõ programkód legyen. Ezt a konzolból a
A Hello.class forráskódot szintén konzolból tudjuk futtatni, ami a
Ha mindent helyesen csináltunk, akkor a konzolban a program lefutása után a Hello World!
Nem csak a PL/SQL kód hívható, fordítottan is használhatjuk, azaz PL/SQL-bõl is lehet Java kódot hívni.
Lépések:
Java osztályunk egy egyszerû metódusból áll, ami visszaadja a Hello world from "paraméterben kapott szöveg" ! üzenetet
A fordítása console-ból történik a
A lefordított java kód betöltése az adatbázisba:
Ha mégsem szeretnénk a java osztályunkat az adatbázisban tárolni, akkor az alábbi parancsal törölhetõ:
Következõ lépésként elkészítünk egy pl/sql függvényt, amely a java kód meghívásáról kondoskodik.
A kódokat már el is készítettük. Már csak két dolog maradt hátra, az elsõ, hogy bekapcsoljuk az adatbázisunk konzolját. Ezt a
Végül meghívjuk a PL/SQL függvényünket.
Ha mindent jól csináltunk, akkor a "Hello world from Oracle!" szöveg megjelenik az adatbázis szerkesztõ program console-jában.
Lehetõségünk van kombinálni is a két nyelv közötti hívásokat, azaz tudunk Java-ból olyan PL/SQL eljárást hívni, ami maga is egy Java kódot hív meg. (Bár ennek nincs sok értelme, mert a teljesítmény szempontjából nem túl ideális.)