Creative Saplings

PL / SQL – Kurzory

30 ledna, 2021
No Comments
Reklamy

V této kapitole probereme kurzory v PL / SQL. Oracle vytváří paměťovou oblast, známou jako kontextová oblast, pro zpracování příkazu SQL, která obsahuje všechny informace potřebné pro zpracování příkazu; například počet zpracovaných řádků atd.

Kurzor je ukazatel na tuto kontextovou oblast. PL / SQL ovládá kontextovou oblast pomocí kurzoru. Kurzor obsahuje řádky (jeden nebo více) vrácené příkazem SQL. Sada řádků, které kurzor obsahuje, se označuje jako aktivní sada.

Kurzor můžete pojmenovat tak, aby jej bylo možné v programu označit za účelem načtení a zpracování řádků vrácených příkazem SQL, jeden včas. Existují dva typy kurzoru –

  • implicitní kurzory
  • explicitní kurzory

implicitní kurzory

implicitní kurzory jsou automaticky vytvářeny společností Oracle při každém provedení příkazu SQL, pokud pro příkaz neexistuje žádný explicitní kurzor. Programátoři nemohou ovládat implicitní kurzory a informace v nich.

Kdykoli je vydán příkaz DML (INSERT, UPDATE a DELETE), je k tomuto příkazu přidružen implicitní kurzor. U operací INSERT obsahuje kurzor data, která je třeba vložit. U operací UPDATE a DELETE identifikuje kurzor řádky, které by byly ovlivněny.

V PL / SQL můžete na nejnovější implicitní kurzor odkazovat jako na kurzor SQL, který má vždy atributy jako% FOUND ,% ISOPEN,% NOTFOUND a% ROWCOUNT. Kurzor SQL má další atributy,% BULK_ROWCOUNT a% BULK_EXCEPTIONS, určené pro použití s příkazem FORALL. Následující tabulka obsahuje popis nejpoužívanějších atributů –

S.No Atribut & Popis
1

% FOUND

Vrací TRUE, pokud příkaz INSERT, UPDATE nebo DELETE ovlivnil jeden nebo více řádků nebo příkaz SELECT INTO vrátil jeden nebo více řádků. V opačném případě vrátí FALSE.

2

% NOTFOUND

Logický opak% FOUND. Vrátí hodnotu TRUE, pokud příkaz INSERT, UPDATE nebo DELETE neovlivní žádné řádky nebo příkaz SELECT INTO nevrátí žádné řádky. V opačném případě vrátí FALSE.

3

% ISOPEN

Vždy vrátí FALSE pro implicitní kurzory, protože Oracle po provedení přidruženého příkazu SQL automaticky zavře kurzor SQL.

4

% ROWCOUNT

Vrátí počet řádků ovlivněných příkazem INSERT, UPDATE nebo DELETE nebo vrácených příkazem SELECT INTO.

Ke kterémukoli atributu kurzoru SQL bude přistupováno jako sql% attribute_name, jak je uvedeno níže v příkladu.

Příklad

Budeme používat tabulku ZÁKAZNÍKŮ, kterou jsme vytvořili a použili v předchozích kapitolách.

Následující program aktualizuje tabulku a zvýší plat každého zákazníka o 500 a použije% SQL Atribut ROWCOUNT k určení počtu ovlivněných řádků –

Když je výše uvedený kód spuštěn na příkazovém řádku SQL, vytvoří následující výsledek –

6 customers selected PL/SQL procedure successfully completed. 

Pokud zkontrolujete záznamy v tabulce zákazníků, zjistíte, že řádky byly aktualizovány –

Explicit Cursors

Explicit cursors are programmer-defined cursors for geting more control over kontextová oblast. V sekci deklarace bloku PL / SQL by měl být definován explicitní kurzor. Je vytvořen na příkazu SELECT, který vrací více než jeden řádek.

Syntaxe pro vytvoření explicitního kurzoru je –

CURSOR cursor_name IS select_statement; 

Práce s explicitním kurzorem zahrnuje následující kroky –

  • Deklarace kurzoru pro inicializaci paměti
  • Otevření kurzoru pro alokaci paměti
  • Načtení kurzoru pro načtení dat
  • Zavření kurzoru pro uvolnění přidělené paměti

Deklarování kurzoru

Deklarace kurzoru definuje kurzor se jménem a přidružený příkaz SELECT. Například –

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

Otevření kurzoru

Otevření kurzoru přidělí paměť kurzoru a připraví jej na načtení vrácených řádků příkazem SQL. Například výše definovaný kurzor otevřete následovně –

OPEN c_customers; 

Načtení kurzoru

Načtení kurzoru zahrnuje přístup k jednomu řádku na Doba. Například načteme řádky z výše otevřeného kurzoru následujícím způsobem –

FETCH c_customers INTO c_id, c_name, c_addr; 

Zavření kurzoru

Zavření kurzoru znamená uvolnění přidělená paměť.Například výše otevřený kurzor zavřeme následovně –

CLOSE c_customers;

Příklad

Následuje ukázkový příklad pro ilustraci konceptů explicitních kurzorů & minua;

Když je výše uvedený kód spuštěn na příkazovém řádku SQL, vytvoří následující výsledek –

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

Articles
Previous Post

Cyklus Sustanon 250

Next Post

Kolik dat používá Netflix - jak je ovládat a používat méně

Napsat komentář Zrušit odpověď na komentář

Nejnovější příspěvky

  • Nejlepší fotografické školy na světě, 2020
  • Sovereign Citizens Take their Anti-Government Philosophy to the Roads
  • Průvodce náklady na opravy Stucco
  • Muckrakers (Čeština)
  • Precision Oncology (Čeština)

Archivy

  • Únor 2021
  • Leden 2021
  • Prosinec 2020
  • Listopad 2020
  • Říjen 2020
  • Září 2020
  • 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.