Introduktion till markörer i PL / SQL

PL / SQL är ett av de mest använda programmeringsspråken när det gäller programmering av databaser. Vissa viktiga begrepp för PL / SQL måste lära sig och förstå tydligt av en PL / SQL-programmerare för att använda dem ordentligt. Markören är en av dem. I PL / SQL-programmet måste SQL-satser köras i slutet. Markören är precis som en pekare som används för att peka kontextområdet, skapat av Oracle för att utföra SQL-sats. En markör har alla rader som returneras efter behandlingen av SQL-uttalanden. Uppsättningen för raden som hålls av markören kallas Active Set. Markören kan också namnges för att använda den ytterligare i programmet av en programmerare. I det här ämnet kommer vi att lära oss om markörer i PL / SQL.

Typer av markörer

Det finns två typer av markörer som används i PL / SQL-programmering:

1. Implicita markörer

Som namnet antyder är implicita markörer de markörer som automatiskt skapas av Oracle när DML-uttalanden som INSERT, DELETE, UPDATE körs. När programmeraren inte skapar någon markör, skapar Oracle i sig själv den för att hålla raderna som påverkas av DML-satserna. Dessa markörer kan inte namnges av programmeraren och kan därför inte hänvisas till och användas på någon annan plats i kod. Även om Oracle tillhandahåller några attribut för att utföra vissa operationer på det som

% FOUND, % NOTFOUND, % ROWCOUNT, % ISOPEN.

S.No.AttributBeskrivning
1.%HITTADESReturnerar sant om DML-uttalanden som INSERT,

DELETE, UPDATE påverkar en eller flera rader eller SELECT-sats anger en eller flera rader. Annars returnerar det falskt

2.%HITTADES INTEDet är motsatsen till attributet% FOUND, det returnerar sant om ingen av raderna påverkas av DML-sats eller SELECT-sats ger inga resultat. Annars returnerar det falskt.
3.%ÄR ÖPPENNär det gäller implicita markörer returnerar det alltid falskt eftersom Oracle stänger markören precis efter körningen av SQL-satser.
4.% ROWCOUNTDet ger radräkningen. Det vill säga antalet rader som påverkas av nämnda DML
uttalanden från programmeraren i PL / SQL-koden som INSERT, DELETE och UPDATE eller antalet rader som returneras av SELECT INTO-uttalandet.
Exempel

Scenario: För att uppdatera alla elevernas poäng i en tabell "student" på engelska Ämne med kolumn "ämne" med 10.

DECLARE
affected_rows number(4);
BEGIN
UPDATE students SET marks = marks+10 where subject = 'English';
IF​ sql%NOTFOUND THEN dbms_output.put_line ('No records of English subject are updated');
ELSIF sql%FOUND THEN​ affected rows: = affected rows%rowcount
dbms_output.put_line('Congrats ..Records Updated' || affected_rows);
END IF;
END;
/

2. Explicit markörer

Explicit Cursors är de markörer som definieras av programmerare för att ha mer kontroll över kontextområdet (där resultaten från SQL-frågor lagras). Dessa markörer måste först definieras i deklarationsblocket för PL / SQL-programmet. Det skapas för SQL-uttalanden som returnerar mer än en rad efter att ha bearbetat dem. Det finns ett specifikt förfarande som måste följas för att använda en tydlig markör. Steg för att använda Explicit Cursor nämns nedan:

1. Förklara markören: Den används för att ge ett namn på kontextområdet / markören tillsammans med det markerade uttalet som måste köras.

Syntax

CURSOR cursor_name IS SELECT statement;

2. Öppna markören: Öppna en markör, tilldelar minnet till det och gör det tillgängligt för att hämta poster som returneras av SQL-uttalandet.

Syntax

OPEN cursor_name;

3. Hämta markören: I den här processen öppnas en rad åt gången. SELECT-satset körs och de hämtade raderna lagras i kontextområdet. Den hämtar posten och tilldelar dem till en definierad variabel.

Syntax

FETCH cursor_name INTO variable;

4. Stäng markören: Detta steg används för att stänga markören som öppnats ovan för att fördela minnet när alla lagrade rader har hämtats framgångsrikt.

Syntax

CLOSE cursor_name;

Exempel

Scenario: Hämta namn, adress och total andel elever i en tabell

"student" med kolumner "namn", "adress" och "procent"

DECLARE
stud_name student.name%type; stud_address student.address%type;
stud_percentage student.percentage%type;
CURSOR stud IS SELECT name, address, percentage FROM student; BEGIN
Open stud;
LOOP
FETCH stud into stud_name, stud_address, stud_percentage;
EXIT when stud%NOTFOUND;
dbms_ouput.put_line(stud_name || ' ' || stud_address || ' ' || stud_percentage);
END LOOP;
CLOSE stud;
END
/

Marköråtgärder

Till skillnad från SQL som fungerar på alla raderna i en resultatsats åt gången, används markören huvudsakligen i scenarierna när programmeraren vill bearbeta och hämta data från en rad i taget.

Nedan nämns några av marköråtgärderna:

  1. Förklara en markör: Det är viktigt att förklara en markör innan du använder den. En markör deklareras genom att definiera SQL-sats som måste bearbetas.
  2. Öppna en markör: Efter deklarationen öppnas en markör och fylls i dataåtergivningen genom bearbetning av SQL-sats.
  3. Hämta en markör: När markören har öppnats, måste utmatningsraderna hämtas en efter en för att utföra någon manipulation om det behövs.
  4. Stäng en markör: Efter all datamanipulation. En markör skapad måste stängas
  5. Deallocate: Detta steg inkluderar radering av markören och frigör alla resurser som den innehar.

Betydelsen av markören i PL / SQL

Att peka på minnesplatsen och utföra åtgärder i enlighet med detta är en av de viktiga uppgifterna i alla programmeringsspråk. I PL / SQL görs det av markörer. Markörerna spelar en avgörande roll när det gäller att utföra den olika uppgiften genom att ge ett namn till minnesområdet (kontextområdet) där resultatet av SQL-frågor sparas. Vi kan komma åt posterna en efter en och utföra eventuella manipulationer i dem vid behov eller visa dem på konsolen i enlighet därmed. Explicit Cursors är mer effektiva, ger mer programmatisk kontroll och mindre sårbara för datafel, så de är mycket användbara i PL / SQL-programmering än Implicit.

Slutsats

Databasprogrammering är mycket populärt i dag och PL / SQL är ett av de språk som borde användas mycket bra i den. Markörerna ger programmeraren mer kontroll för att få åtkomst till data som hämtats. För att en programmerare ska arbeta med PL / SQL är det viktigt att känna till användningen och vikten av markören för att fungera effektivt.

Rekommenderade artiklar

Detta är en guide till markörer i PL / SQL. Här diskuterar vi vilka typer av markörer som används i PL / SQL-programmering med marköråtgärder och vikten av markören. Du kan också titta på följande artiklar för att lära dig mer -

  1. Typer av sammanfogningar i SQL
  2. SQL Infoga fråga
  3. Tabell i SQL
  4. Wildcard i SQL
  5. Topp 6 typer av sammanfogningar i MySQL med exempel