Forskjell mellom eksplisitt markør og implisitt markør

Anonim

Eksplisitt markør vs implisitt markør

Når det gjelder databaser, er en markør en kontrollstruktur som gjør det mulig å krysse over postene i en database. En markør gir en mekanisme for å tildele et navn til en SQL-velg setning og deretter kan den brukes til å manipulere informasjonen i den SQL-setningen. Implisitte markører blir automatisk opprettet og brukt hver gang en Select-setning utstedes i PL / SQL, når det ikke er noen eksplisitt definert markør. Eksplisitte markører, som navnet antyder, er definert eksplisitt av utvikleren. I PL / SQL er en eksplisitt markør faktisk en navngitt forespørsel definert ved hjelp av nøkkelordmarkøren.

Hva er Implicit Markør?

Implisitte markører blir automatisk opprettet og brukt av Oracle hver gang en valgt setning utstedes. Hvis en implisitt markør brukes, vil Database Management System (DBMS) utføre åpne, hente og lukke operasjoner automatisk. Implisitte markører skal bare brukes med SQL-setninger som returnerer en enkelt rad. Hvis SQL-setningen returnerer mer enn en rad, vil en implisitt markør introdusere en feil. En implisitt markør blir automatisk knyttet til hver DML-setning (Data Manipulation Language), nemlig INSERT, UPDATE og DELETE statements. En implisitt markør brukes også til å behandle SELECT INTO-setninger. Når du henter data ved hjelp av implisitte markører, kan NO_DATA_FOUND unngås når SQL-setningen returnerer ingen data. Videre kan implisitte markører øke TOO_MANY_ROWS unntak når SQL-setningen returnerer mer enn én rad.

Hva er eksplisitt markør?

Som nevnt tidligere er eksplisitte markører definert med et navn. En eksplisitt markør kan betraktes som en peker på et sett med poster, og pekeren kan flyttes fremover i settet av poster. Eksplisitte markører gir brukeren full kontroll over å åpne, lukke og hente data. Også flere rader kan hentes ved hjelp av en eksplisitt markør. Eksplisitte markører kan også ta parametere som enhver funksjon eller prosedyre, slik at variablene i markøren kan endres hver gang den utføres. I tillegg tillater eksplisitte markører deg å hente en hel rad inn i en PL / SQL-rekordvariabel. Når du bruker en eksplisitt markør, må du først deklarere ved å bruke et navn. Markørattributter kan nås ved å bruke navnet som er oppgitt til markøren. Etter å ha erklært, må markøren åpnes først. Deretter kan henting starte. Hvis flere rader skal hentes, må henting operasjonen gjøres inne i en løkke. Endelig må markøren være stengt.

Forskjellen mellom eksplisitt markør og implisitt markør

Hovedforskjellen mellom den implicitte markøren og eksplisitte markøren er at en eksplisitt markør må defineres eksplisitt ved å gi et navn mens implisitte markører automatisk blir opprettet når du utsteder en valgt uttalelse.Videre kan flere rader hentes ved hjelp av eksplisitte markører, mens implisitte markører bare kan hente en enkelt rad. Også NO_DATA_FOUND og TOO_MANY_ROWS unntak blir ikke hevet når du bruker eksakte markører, i motsetning til implisitte markører. I hovedsak er implisitte markører mer utsatt for datafeil og gir mindre programmatisk kontroll enn eksplisitte markører. Også, implisitte markører anses mindre effektive enn eksplisitte markører.