Forskel mellem eksplosiv markør og implicit markør

Anonim

Eksplicit markør vs implicit markør

Når det kommer til databaser, er en markør en kontrolstruktur, der gør det muligt at krydse over optegnelserne i en database. En markør giver en mekanisme til at tildele et navn til en SQL-valgt sætning, og så kan den bruges til at manipulere oplysningerne i den SQL-sætning. Implisitte markører oprettes automatisk og bruges hver gang en Select-sætning udstedes i PL / SQL, når der ikke er nogen eksplicit defineret markør. Eksplicit markører, som navnet antyder, defineres udtrykkeligt af bygherren. I PL / SQL er en eksplicit markør faktisk en navngivet forespørgsel defineret ved hjælp af nøgleordmarkøren.

Hvad er Implicit Markør?

Implisitte markører oprettes automatisk og bruges af Oracle hver gang en valgt erklæring udstedes. Hvis der anvendes en implicit markør, udfører databasestyringssystemet (DBMS) automatisk, hent og lukker operationer automatisk. Implisive markører skal kun bruges med SQL-sætninger, der returnerer en enkelt række. Hvis SQL-sætningen returnerer mere end en række, indføres en fejl ved hjælp af en implicit markør. En implicit markør er automatisk forbundet med hvert DML-datasætninger, nemlig INSERT, UPDATE og DELETE. En implicit markør bruges også til at behandle SELECT INTO udsagn. Når du henter data ved hjælp af implicitte markører, kan NO_DATA_FOUND undtages, når SQL-sætningen returnerer ingen data. Desuden kan implicitte markører hæve TOO_MANY_ROWS undtagelser, når SQL-sætningen returnerer mere end en række.

Hvad er eksplicit markør?

Som nævnt tidligere er eksplicitte markører defineret med et navn. En eksplicit markør kan betragtes som en peger på et sæt poster, og markøren kan flyttes fremad inden for sæt af poster. Eksplicitte cursorer giver brugeren fuldstændig kontrol over åbning, lukning og hentning af data. Derudover kan flere rækker hentes ved hjælp af en eksplicit markør. Eksplicit markører kan også tage parametre ligesom enhver funktion eller procedure, så variablerne i markøren kan ændres hver gang den udføres. Derudover giver eksplicitte markører dig mulighed for at hente en hel række ind i en PL / SQL-rekordvariabel. Når du bruger en eksplicit markør, skal du først deklarere ved hjælp af et navn. Markør attributter kan fås ved hjælp af navnet angivet til cursor. Efter erklæringen skal markøren åbnes først. Derefter kan hentning startes. Hvis flere rækker skal hentes, skal hentningsproceduren gøres indenfor en loop. Endelig skal markøren lukkes.

Forskel mellem eksplicit markør og implicit markør

Hovedforskellen mellem den implicitte markør og eksplicit markør er, at en eksplicit markør skal defineres eksplicit ved at angive et navn, mens implicitte markører automatisk oprettes, når du udsteder en valgt erklæring.Desuden kan flere rækker hentes ved hjælp af eksplicitte markører, mens implicitte markører kun kan hente en enkelt række. Også NO_DATA_FOUND og TOO_MANY_ROWS undtagelser hæves ikke, når du bruger eksplicitte markører, i modsætning til implicitte markører. I virkeligheden er implicitte markører mere sårbare overfor datafejl og giver mindre programmatisk kontrol end eksplicitte markører. Også implicitte markører betragtes som mindre effektive end eksplicitte markører.