mi a dinamikus SQL?
A Dynamic SQL egy programozási módszer a futásidejű utasítások generálására és futtatására. Főleg olyan általános célú és rugalmas programok írására használják, ahol az SQL utasítások a követelmény alapján futási időben kerülnek létrehozásra és végrehajtásra.,
ebben A tutorial, hogy megtanulják, –
- Módon írja dinamikus SQL
- NDS (Natív Dinamikus SQL) – Végre Azonnali
- DBMS_SQL a Dinamikus SQL
Módon írja dinamikus SQL
PL/SQL kétféleképpen írjuk dinamikus SQL
- NDS – Natív Dinamikus SQL
- DBMS_SQL
NDS (Natív Dinamikus SQL) – Végre Azonnali
Natív Dinamikus SQL ez a könnyebb út írni dinamikus SQL. Az “EXECUTE azonnali” parancs segítségével hozza létre és hajtja végre az SQL-t futási időben., De ahhoz, hogy ezt a módszert használhassuk, a futási időben használandó változó adattípusát és számát már korábban ismernünk kell. Ez is ad jobb teljesítményt, kevésbé bonyolult, ha összehasonlítja a DBMS_SQL.
szintaxis
EXECUTE IMMEDIATE(<SQL>)
- a fenti szintaxis azonnali parancsot mutat. a
- záradék megadása nem kötelező, csak akkor használható, ha a dinamikus SQL tartalmaz egy select utasítást, amely értékeket lekér. A változó típusának meg kell egyeznie a select utasítás változó típusával., a
- záradék használata nem kötelező, csak akkor használható, ha a dinamikus SQL tartalmaz bind változót.
1. példa: ebben a példában az EMP tábla adatait az emp_no ‘1001’ – hez fogjuk letölteni az NDS utasítás használatával.
kimenet
Employee Name : XXX Employee Number: 1001 Salary: 15000 Manager ED: 1000
Kód magyarázata:
DBMS_SQL dinamikus SQL
PL / SQL megadja a dbms_sql csomagot, amely lehetővé teszi meg kell dolgozni dinamikus SQL. A dinamikus SQL létrehozásának és végrehajtásának folyamata a következő folyamatot tartalmazza.,
- kurzor megnyitása: a dinamikus SQL ugyanúgy fog végrehajtani, mint a kurzor. Tehát az SQL utasítás végrehajtásához meg kell nyitnunk a kurzort.
- SQL elemzése: a következő lépés a dinamikus SQL elemzése. Ez a folyamat csak ellenőrzi a szintaxist, majd a lekérdezés készen áll a végrehajtásra.
- változó értékek kötése: a következő lépés a bind változók értékeinek hozzárendelése, ha vannak ilyenek.
- oszlop meghatározása: a következő lépés az oszlop meghatározása a select utasítás relatív pozícióinak felhasználásával.
- EXECUTE: a következő lépés az elemzett lekérdezés végrehajtása.,
- értékek lekérése: a következő lépés a végrehajtott értékek lekérése.
- kurzor bezárása: Az eredmények lekérése után a kurzort le kell zárni.
1. példa: ebben a példában az EMP tábla adatait az emp_no ‘1001’ – hez fogjuk letölteni a DBMS_SQL utasítás használatával.
kimenet
Employee Name:XXX Employee Number:1001 Salary:15000 Manager ID:1000
kód magyarázata:
- kódsor 1-9: változó nyilatkozat.,
- kódsor 10: Az SQL utasítás keretezése.
- kódsor 11: A kurzor megnyitása DBMS_SQL segítségével.OPEN_CURSOR. Visszaadja a megnyitott kurzor azonosítót.
- kódsor 12: A kurzor megnyitása után az SQL elemezve van.
- 13-as kódsor:az “1001” változó a kurzorazonosítóhoz rendeli a”: empno ” helyett.
- kódsor 14-17: az oszlop nevének meghatározása az SQL utasítás relatív pozíciója alapján. Esetünkben a relatív pozíció (1) emp_name, (2) emp_no (3) fizetés (4) menedzser. Tehát ezen pozíció alapján meghatározzuk a célváltozót.,
- kódsor 18: a lekérdezés végrehajtása DBMS_SQL segítségével.Kivégzés. Visszaadja a feldolgozott rekordok számát.
- kódsor 19-33: a rekordok lekérése egy hurok segítségével, amely ugyanazt jeleníti meg.
- kódsor 20: DBMS_SQL.A FETCH_ROWS egy rekordot fog letölteni a feldolgozott sorokból. Meg lehet hívni többször letölteni az összes sort. Ha nem tudja letölteni a sorokat, akkor 0-ra tér vissza, így kilép a hurokból.
összefoglaló
ebben a szakaszban a dinamikus SQL-t és a dinamikus SQL-t futtathatjuk., Azt is láttuk, hogy a dinamikus SQL mindkét módon végrehajtja a különböző lépéseket. Láttuk azokat a példákat is, amelyekben ugyanazt a forgatókönyvet kezelik mind az NDS, mind a DBMS_SQL módon, hogy futási időben végrehajtsák a végrehajtást.