Hva er Dynamisk SQL?

Dynamisk SQL er en programmerer metodikk for å generere og kjører uttalelser på kjøre-time. Det er i hovedsak brukt til å skrive generell og fleksibel programmer der SQL uttalelser vil bli opprettet og henrettet ved run-time basert på kravene.,

I denne opplæringen vil du lære-

  • Måter å skrive dynamisk SQL
  • NDS-køer (Native Dynamisk SQL) – Utføre Umiddelbare
  • DBMS_SQL for Dynamisk SQL

Måter å skrive dynamisk SQL

PL/SQL gir deg to måter å skrive dynamisk SQL –

  1. NDS – Native Dynamisk SQL
  2. DBMS_SQL

NDS-køer (Native Dynamisk SQL) – Utføre Umiddelbare

Native Dynamisk SQL er en enklere måte å skrive dynamisk SQL. Den bruker ‘UTFØR UMIDDELBAR’ – kommandoen til å opprette og kjøre SQL-på kjøre-time., Men å bruke denne måten, datatype og antall variable som skal brukes på en kjøre trenger tid til å bli kjent før. Det gir også bedre ytelse og mindre kompleksitet når du sammenligner DBMS_SQL.

Syntaks

EXECUTE IMMEDIATE(<SQL>)
  • De ovennevnte syntaks viser UTFØRE UMIDDELBARE kommando.
  • Klausulen INN er valgfritt, og brukes kun hvis dynamisk SQL inneholder en select-setning som henter verdier. Variabelen type bør samsvare med den variable type select-setning.,
  • Klausulen BRUKER er valgfritt, og brukes kun hvis dynamisk SQL inneholder noe binde variabel.

Eksempel 1: I dette eksemplet, vi kommer til å hente data fra emp tabell for emp_no ‘1001″ ved hjelp av NDS-erklæringen.

Output

Employee Name : XXX Employee Number: 1001 Salary: 15000 Manager ED: 1000

Kode Forklaring:

DBMS_SQL for Dynamisk SQL

PL/SQL gi DBMS_SQL pakke som gjør det mulig for deg å arbeide med dynamisk SQL. Prosessen med å opprette og kjøre dynamisk SQL inneholder følgende prosess.,

  • ÅPNE MARKØREN: dynamisk SQL utføres på samme måte som en markør. Så for å utføre SQL-setning, må vi åpne markøren.
  • PARSE-SQL: Det neste trinnet er å analysere dynamisk SQL. Denne prosessen vil bare sjekke syntaksen og holde spørringen klar til å kjøre.
  • BINDE VARIABLE Verdier: Det neste trinnet er å tilordne verdier for bind variabler hvis det er noen.
  • DEFINERE KOLONNE: neste steg er å definere kolonnen med sine relative posisjoner i select-setning.
  • UTFØRE: Det neste trinnet er å utføre analyseres spørring.,
  • HENT VERDIER: Det neste trinnet er å hente utført verdier.
  • TETT MARKØREN: Når resultatene er hentet markøren skal være lukket.

Eksempel 1: I dette eksemplet, vi kommer til å hente data fra emp tabell for emp_no ‘1001″ ved hjelp av DBMS_SQL uttalelse.

Output

Employee Name:XXX Employee Number:1001 Salary:15000 Manager ID:1000

Kode Forklaring:

  • Kode linje 1-9: Variabel erklæring.,
  • Kode linje 10: ramme inn SQL-setningen.
  • Kode linje 11: Åpning markøren ved hjelp av DBMS_SQL.OPEN_CURSOR. Det vil returnere markøren id som er åpnet.
  • Kode linje 12: Etter markøren er åpnet, SQL er analysert.
  • Kode linje 13: Bind variabel ‘1001’ er tilordne til markøren id stedet ‘:empno’.
  • Kode linje 14-17: Definere kolonne navn basert på deres relative posisjon i SQL-setningen. I vårt tilfelle, den relative posisjonen er (1) emp_name, (2) emp_no (3) lønn (4) manager. Så basert på denne posisjonen vi er å definere målet variabel.,
  • Kode linje 18: Utføre spørring ved hjelp av DBMS_SQL.UTFØRE. Den returnerer antall poster behandles.
  • Kode linje 19-33: Henting av poster ved hjelp av en løkke og viser det samme.
  • Kode linje 20: DBMS_SQL.FETCH_ROWS vil hente én post fra rader behandlet. Det kan bli kalt gjentatte ganger for å hente alle radene. Hvis det ikke kan hente rader, vil den gå tilbake til 0, og dermed avslutte loopen.

Oppsummering

I denne delen, vi har diskutert dynamisk SQL og måter å utføre DYNAMISK SQL., Vi har også sett på de ulike trinnene i å utføre dynamisk SQL i begge måter. Vi har også sett eksempler der den samme scenario er behandlet i både NDS-køer og DBMS_SQL måter å utføre kjøring ved run-time.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *