Creative Saplings

PL / SQL – Kurzorok

január 30, 2021
No Comments
Hirdetések

Ebben a fejezetben a kurzorokat tárgyaljuk PL / SQL-ben. Az Oracle létrehoz egy memóriaterületet, más néven kontextusterületet egy SQL utasítás feldolgozásához, amely tartalmazza az utasítás feldolgozásához szükséges összes információt; például a feldolgozott sorok száma stb.

A kurzor mutató erre a kontextusra. A PL / SQL egy kurzoron keresztül irányítja a kontextus területét. A kurzor tartja az SQL utasítás által visszaadott sorokat (egy vagy több). A kurzor által tartott sorokat aktív halmaznak nevezzük.

Megnevezhet egy kurzort, hogy hivatkozni lehessen rá egy programban az SQL utasítás által visszaadott sorok lehívására és feldolgozására. egy időben. Kétféle kurzor létezik –

  • implicit kurzorok
  • explicit kurzorok

implicit kurzorok

implicit kurzorok automatikusan létrehozza az Oracle, amikor egy SQL utasítást futtatnak, amikor nincs kifejezett kurzor az utasításhoz. A programozók nem tudják ellenőrizni az implicit kurzorokat és a benne lévő információkat.

Amikor DML utasítás (INSERT, UPDATE és DELETE) kiadásra kerül, implicit kurzor társul ehhez az utasításhoz. INSERT műveleteknél a kurzor tartalmazza a beillesztendő adatokat. UPDATE és DELETE műveleteknél a kurzor azonosítja az érintett sorokat.

A PL / SQL-ben hivatkozhat a legfrissebb implicit kurzorra SQL-kurzorként, amelynek mindig vannak attribútumai, például% FOUND ,% ISOPEN,% NOTFOUND és% ROWCOUNT. Az SQL kurzor további attribútumokkal rendelkezik:% BULK_ROWCOUNT és% BULK_EXCEPTIONS, amelyeket a FORALL utasítással való használatra terveztek. Az alábbi táblázat ismerteti a leggyakrabban használt attribútumokat –

S.No & Leírás
1 attribútum

% FOUND

IGAZ eredményt ad, ha egy INSERT, UPDATE vagy DELETE utasítás egy vagy több sort érintett vagy egy SELECT INTO utasítás egy vagy több sort adott vissza. Ellenkező esetben HAMIS.

2

% NOTFOUND

A% FOUND logikai ellentéte. Az IGAZ értéket adja vissza, ha egy INSERT, UPDATE vagy DELETE utasítás nem érintett sorokat, vagy a SELECT INTO utasítás nem adott sorokat. Ellenkező esetben a FALSE értéket adja vissza.

3

% ISOPEN

Az implicit kurzorok esetén mindig FALSE értéket ad vissza, mert az Oracle a társított SQL utasítás végrehajtása után automatikusan bezárja az SQL kurzort.

4

% ROWCOUNT

Visszaadja az INSERT, UPDATE vagy DELETE utasítással érintett vagy a SELECT INTO utasítás által visszaadott sorok számát.

Bármely SQL kurzorattribútum sql% attribute_name néven lesz elérhető, a lenti példában látható módon.

Példa

Az előző fejezetekben létrehozott és használt ÜGYFELEK táblázatot fogjuk használni.

A következő program frissíti a táblázatot, és minden ügyfél fizetését 500-mal emeli, és az SQL% -ot fogja használni. ROWCOUNT attribútum az érintett sorok számának meghatározásához –

Amikor a fenti kód végrehajtásra kerül az SQL parancssorban, a következő eredményt kapja –

6 customers selected PL/SQL procedure successfully completed. 

Ha megnézi a rekordokat az ügyfelek táblázatában, akkor kiderül, hogy a sorok frissültek –

Explicit Kurzorok

Az Explicit Kurzorok a programozó által definiált kurzorok, amelyekkel jobban ellenőrizhetők a kontextus területe. Egy explicit kurzort meg kell határozni a PL / SQL blokk deklarációs szakaszában. Egy SELECT utasításon jön létre, amely egynél több sort ad vissza.

Az explicit kurzor létrehozásának szintaxisa –

CURSOR cursor_name IS select_statement; 

Működik explicit kurzorral a következő lépéseket tartalmazza:

  • A kurzor deklarálása a memória inicializálásához
  • A kurzor megnyitása a memória lefoglalásához
  • A kurzor lekérése az adatok lekérdezéséhez
  • A kurzor bezárása a kiosztott memória felszabadításához

A kurzor deklarálása

A kurzor deklarálása megadja a kurzort egy névvel és a társított SELECT utasítás. Például –

CURSOR c_customers IS SELECT id, name, address FROM customers; 

A kurzor megnyitása

A kurzor megnyitása felosztja a memóriát a kurzor számára, és készen áll a visszaküldött sorok beolvasására. az SQL utasítással. Például a fenti kurzort a következőképpen nyitjuk meg:

OPEN c_customers; 

A kurzor lekérése

A kurzor lekérése egy sor elérését jelenti. Egy idő. Például sorokat fogunk lekérni a fent megnyitott kurzorból az alábbiak szerint –

FETCH c_customers INTO c_id, c_name, c_addr; 

A kurzor bezárása

A kurzor bezárása feloldást jelent a lefoglalt memória.Például bezárjuk a fent megnyitott kurzort az alábbiak szerint –

CLOSE c_customers;

Példa

Az alábbiakban bemutatunk egy teljes példát a fogalmak szemléltetésére. explicit kurzorok & minua;

Amikor a fenti kódot végrehajtják az SQL parancssorban, a következő eredményt kapja –

1 Ramesh Ahmedabad 2 Khilan Delhi 3 kaushik Kota 4 Chaitali Mumbai 5 Hardik Bhopal 6 Komal MP PL/SQL procedure successfully completed. 
Hirdetések

Articles
Previous Post

Sustanon 250 ciklus

Next Post

Mennyi adatot használ a Netflix - hogyan kezeljük és kevesebbet használok

Vélemény, hozzászólás? Kilépés a válaszból

Legutóbbi bejegyzések

  • A világ legjobb fotóiskolái, 2020
  • A szuverén polgárok kormányellenes filozófiájukat viszik az utakra
  • Stukkó javítási költség útmutató
  • Muckrakers (Magyar)
  • Precíziós onkológia

Archívum

  • 2021 február
  • 2021 január
  • 2020 december
  • 2020 november
  • 2020 október
  • 2020 szeptember
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.