Creative Saplings

PL / SQL – markörer (Svenska)

januari 30, 2021
No Comments
Annonser

I detta kapitel kommer vi att diskutera markörerna i PL / SQL. Oracle skapar ett minnesområde, så kallat kontextområdet, för bearbetning av ett SQL-uttalande, som innehåller all information som behövs för att bearbeta uttalandet. till exempel antalet rader som bearbetats osv.

En markör är en pekare till detta sammanhang. PL / SQL styr kontextområdet genom en markör. En markör innehåller raderna (en eller flera) som returneras av ett SQL-uttalande. Den uppsättning rader som markören har kallas den aktiva uppsättningen.

Du kan namnge en markör så att den kan hänvisas till i ett program för att hämta och bearbeta de rader som returneras av SQL-satsen, en vid en tid. Det finns två typer av markörer –

  • Implicita markörer
  • Explicita markörer

Implicita markörer

Implicita markörer skapas automatiskt av Oracle när ett SQL-uttalande körs, när det inte finns någon uttrycklig markör för uttalandet. Programmerare kan inte styra de implicita markörerna och informationen i den.

När ett DML-uttalande (INSERT, UPDATE och DELETE) utfärdas är en implicit markör associerad med detta uttalande. För INSERT-operationer innehåller markören de data som måste infogas. För UPDATE- och DELETE-operationer identifierar markören de rader som skulle påverkas.

I PL / SQL kan du hänvisa till den senaste implicita markören som SQL-markören, som alltid har attribut som% FOUND ,% ISOPEN,% NOTFOUND och% ROWCOUNT. SQL-markören har ytterligare attribut,% BULK_ROWCOUNT och% BULK_EXCEPTIONS, utformade för användning med FORALL-satsen. Följande tabell ger beskrivning av de mest använda attributen –

S.No Attribut & Beskrivning
1

% FOUND

Returnerar SANT om ett INSERT-, UPDATE- eller DELETE-uttalande påverkade en eller flera rader eller ett SELECT INTO-uttalande returnerade en eller flera rader. Annars returnerar den FALSE.

2

% NOTFOUND

Den logiska motsatsen till% FOUND. Det returnerar SANT om ett INSERT-, UPDATE- eller DELETE-uttalande inte påverkade några rader, eller ett SELECT INTO-uttalande returnerade inga rader. Annars returnerar den FALSE.

3

% ISOPEN

Returnerar alltid FALSE för implicita markörer, eftersom Oracle stänger SQL-markören automatiskt efter att ha associerat SQL-uttalandet.

4

% ROWCOUNT

Returnerar antalet rader som påverkas av en INSERT-, UPDATE- eller DELETE-sats, eller returneras av en SELECT INTO-sats.

Alla SQL-markörattribut kommer åt som sql% attributnamn som visas nedan i exemplet.

Exempel

Vi kommer att använda CUSTOMERS-tabellen som vi skapat och använt i föregående kapitel.

Följande program uppdaterar tabellen och höjer lönen för varje kund med 500 och använder SQL% ROWCOUNT-attribut för att bestämma antalet berörda rader –

När ovanstående kod körs vid SQL-prompten ger den följande resultat –

6 customers selected PL/SQL procedure successfully completed. 

Om du kontrollerar posterna i kundtabellen kommer du att upptäcka att raderna har uppdaterats –

Explicita markörer

Explicita markörer är programmerardefinierade markörer för att få mer kontroll över sammanhangsområdet. En tydlig markör bör definieras i deklarationsavsnittet i PL / SQL-blocket. Den skapas på ett SELECT-uttalande som returnerar mer än en rad.

Syntaxen för att skapa en explicit markör är –

CURSOR cursor_name IS select_statement; 

Fungerar med en tydlig markör innehåller följande steg –

  • Förklara markören för initialisering av minnet
  • Öppna markören för allokering av minnet
  • Hämta markören för att hämta data
  • Stänga markören för att frigöra tilldelat minne

Förklara markören

Förklara markören definierar markören med ett namn och tillhörande SELECT-uttalande. Till exempel –

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

Öppna markören

Öppna markören tilldelar markören till markören och gör den redo för att hämta de returnerade raderna av SQL-satsen till den. Vi öppnar till exempel den ovan definierade markören enligt följande –

OPEN c_customers; 

Att hämta markören

Att hämta markören innebär att du får åtkomst till en rad på en tid. Till exempel kommer vi att hämta rader från den ovan öppnade markören enligt följande –

FETCH c_customers INTO c_id, c_name, c_addr; 

Stänga markören

Att stänga markören betyder att du släpper det tilldelade minnet.Till exempel stänger vi den ovan öppnade markören enligt följande –

CLOSE c_customers;

Exempel

Följande är ett komplett exempel för att illustrera begreppen av tydliga markörer & minua;

När ovanstående kod körs vid SQL-prompten, ger den följande resultat –

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

Articles
Previous Post

Sustanon 250-cykel

Next Post

Hur mycket data Netflix använder - hur man kontrollerar det och använder mindre

Lämna ett svar Avbryt svar

Senaste inläggen

  • Världens bästa fotoskolor, 2020
  • Suveräna medborgare tar sin regeringsfilosofi mot vägarna
  • Guide för reparation av stuckaturer
  • Muckrakers (Svenska)
  • Precision Oncology (Svenska)

Arkiv

  • februari 2021
  • januari 2021
  • december 2020
  • november 2020
  • oktober 2020
  • september 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.