sql >> Databasteknik >  >> RDS >> Oracle

Introduktion till Native Dynamic SQL i Oracle Database

Native Dynamic SQL

Innan du börjar lära dig Native dynamisk SQL är en kort bakgrund viktig. Oracle gav en midsommargåva i maj 1994 till alla utvecklare genom att introducera Dynamic SQL-konceptet i sin databasversion 7.1 (a.k.a. Oracle 7.1). Med detta gjorde det det möjligt för utvecklare att skriva dynamisk SQL genom paketet "DBMS_SQL".

Men gradvis började DBMS_SQL-biblioteket tappa sin charm. På grund av dess "Not So Easy"-syntaxer, "Sluggish Performance" och "Unsupported User-Defined Types". Alla dessa brister väckte behovet av något annat. Vilket skulle kunna hjälpa utvecklarna att skriva en väl optimerad kod utan att lägga överdriven stress på deras sinnen.

Oracle tog sin tid, nästan fem år. Slutligen släpptes en förbättrad version av Dynamic SQL med lanseringen av Oracle Database 8i eller för att vara exakt Oracle Database version 8.1.5 i februari 1999. På grund av sin stabila karaktär blev denna förbättrade version av Dynamic SQL den inbyggda delen av PL/ SQL-språk och fick sitt namn "Native Dynamic SQL" genom vilket det är känt nu för tiden. Det är en kort introduktion av uppkomsten av den inbyggda dynamiska SQL i Oracle Database.

För att förstå den inbyggda dynamiska SQL måste vi först förstå vad som är statisk SQL i Oracle Database?

Vad är statisk SQL?

Som namnet antyder kallas alla SQL-satser som inte ändras under körningen en statisk SQL-sats.

Fördelen med statiska SQL-satser är att vi redan vet om alla de beroende objekt som vi skriver satsen över finns eller inte. En annan fördel med statiska SQL-satser är att vi hårdkodar dem i vår applikation. På så sätt kan vi ställa in dem för optimal prestanda.

Nu när vi har lärt oss vad statisk SQL är, låt oss se vad som är dynamisk SQL?

Vad är Native Dynamic SQL?

Återigen som namnet antyder, alla SQL-satser som konstrueras under körningen kallas dynamisk SQL . Dessa uttalanden är byggda i farten. Därför kan de inte hårdkodas i applikationen. Detta ökar i sin tur deras flexibilitet.

Å ena sidan låter statisk SQL dig endast exekvera DML-satser i ditt PL/SQL-block. Å andra sidan gör den dynamiska SQL-en att du kan köra DDL-satser och det också i ditt PL/SQL-block. Genom att använda Dynamic SQL kan du alltså skapa en tabell eller släppa ett index eller trunkera din tabell precis inuti ditt PL/SQL-block. Detta är en fördel med Native Dynamic SQL framför statisk SQL.

Vad är Native Dynamic PL/SQL?

I likhet med dynamisk SQL kallas processen för att konstruera PL/SQL-kod vid körning dynamisk PL/SQL.

Låt oss nu ta en titt på fördelarna med Native Dynamic SQL över paketet DBMS_SQL i Oracle Database.

Fördelar med Native Dynamic SQL

  • Lättanvända koder: I jämförelse med DBMS_SQL-paketet är den ursprungliga dynamiska SQL-en mycket lätt att använda. Detta beror främst på att det är inbyggt i själva SQL-en. Det motsvarar att använda statisk SQL i en PL/SQL-kod. Också inbyggd dynamisk SQL-kod är mer kompakt och läsbar än DBMS_SQL-paketet. Det senare kräver stora mängder koder på grund av strikta sekventiella procedurer. Det gör det mer komplext.
  • Förbättring av kodens prestanda: Det finns ett inbyggt stöd för inbyggd dynamisk SQL i PL/SQL-tolken. Således är programmen som använder det mer effektiva än de som använder DBMS_SQL-paketet. I grund och botten kombinerar naturlig dynamisk SQL stegen som involverar förberedelse, bindning och exekvering i en operation. Detta minskar förfarandet för samtal och datakopiering och förbättrar i sin tur prestandan.
  • Support för användardefinierade typer: Till skillnad från DBMS_SQL-paketet, stöder den inbyggda dynamiska SQL-funktionen alla typer av användardefinierade typer. Till exempel användardefinierade objekt, REF och samlingar.
  • Support för hämtning till poster: Raderna som är resultatet av en fråga kan hämtas direkt till PL/SQL-poster med inbyggd dynamisk SQL. Detta är inte möjligt med DBMS_SQL-paketet.

Vilka funktioner har Dynamic SQL i Oracle Database?

  1. För det första, dynamisk DDL och DML med användning av vilken bindningsvariabel som helst.
  2. För det andra, Dynamic DQL och
  3. För det tredje, Dynamisk DML som använder en känd lista med bindningsvariabler

Det här är de tre funktionerna som Dynamic SQL lägger till i din PL/SQL-programmering.

Så, hur använder vi dynamisk SQL i Oracle Database?

De två vanligaste metoderna för att använda dynamisk SQL och PL/SQL i Oracle Database är:

  1. Utför omedelbart uttalande och
  2. Öppna för, hämta och stäng block.

Execute Immediate-satsen används när frågan returnerar enkelradsdata. Om frågan returnerar flerradsdata kan du ta hjälp av Open-For, Hämta och stäng block. Vi kommer att lära oss om Execute Immediate och Open-for, hämta och stäng block i detalj i de kommande handledningarna.

Finns det några andra sätt att använda Dynamic SQL i Oracle Database?

Förutom ovan nämnda vanligaste metoder är de andra sätten att använda dynamisk SQL eller PL/SQL

  • Med masshämtning
  • För det andra med Bulk Execute Immediate
  • Tillsammans med Bulk FORALL och
  • Sistaligen med Bulk Collect Into-utlåtandet

Vi har lärt oss alla ovanstående kommandon och uttalanden i den tidigare serien om bulkdatabehandling.

Om du gillar att lära dig genom videosjälvstudier, gå vidare och kolla in det.

Det är en detaljerad introduktion till Native Dynamic SQL i Oracle Database. Hoppas du tyckte om att läsa. Se till att Dela länken till denna blogg med dina vänner på dina sociala medier. Se också till att prenumerera på YouTube-kanalen för att följa den här serien och lära dig något nytt och intressant.

Tack och ha en bra dag!


  1. En översikt över VACUUM-bearbetning i PostgreSQL

  2. Android Room Embedded Relation ignorerar SQL where-villkor

  3. Begäran inställd i Concurrent Manager

  4. Skäl att förvandla Access-appar till webbaserade appar