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 posterne i en database. En markør tilvejebringer en mekanisme til at tildele et navn til en SQL-valgsætning, og derefter kan den bruges til at manipulere informationerne inden for denne SQL-sætning. Implicitte markører oprettes og bruges automatisk hver gang der vælges en sætning i PL / SQL, når der ikke er nogen eksplicit defineret markør. Eksplicit markører defineres eksplicit af udvikleren, som navnet antyder. 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?
Implicitte markører oprettes og bruges automatisk af Oracle, hver gang der udstedes en valgt erklæring. Hvis der bruges en implicit markør, udfører databasestyringssystemet (DBMS) de åbne, hente og lukke operationer automatisk. Implicitte 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, vil brug af en implicit markør introducere en fejl. En implicit markør er automatisk tilknyttet hver DML-sætning (Data Manipulation Language), nemlig INSERT, UPDATE og DELETE udsagn. En implicit markør bruges også til at behandle SELECT INTO udsagn. Ved hentning af data ved hjælp af implicitte markører kan NO_DATA_FOUND undtagelse hæves, når SQL-sætningen ikke returnerer nogen 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 eksplicit markører forespørgsler defineret ved hjælp af et navn. En eksplicit markør kan tænkes som en markør til et sæt poster, og markøren kan flyttes fremad inden for sæt sæt. Eksplicit markører giver brugeren den komplette kontrol over åbning, lukning og hentning af data. Flere rækker kan også hentes ved hjælp af en eksplicit markør. Eksplicitte 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-postvariabel. Når du bruger en eksplicit markør, skal den først deklareres ved hjælp af et navn. Markørattributter kan fås ved hjælp af det navn, der er givet til markøren. Efter erklæringen skal markøren først åbnes. Derefter kan hentning startes. Hvis flere rækker skal hentes, skal hentningsprocessen udføres inde i en løkke. Endelig skal markøren lukkes.
Forskellen mellem eksplicit markør og implicit markør
Den største forskel mellem den implicitte markør og eksplicit markør er, at en eksplicit markør skal defineres eksplicit ved at give et navn, mens implicitte markører automatisk oprettes, når du udsteder en markeret udsagn. Derudover kan flere rækker hentes ved hjælp af eksplicitte markører, mens implicitte markører kun kan hente en enkelt række. Også undtagelser fra NO_DATA_FOUND og TOO_MANY_ROWS hæves ikke, når man bruger eksplicitte markører, i modsætning til implicitte markører. I det væsentlige er implicitte markører mere sårbare over for datafejl og giver mindre programmatisk kontrol end eksplicitte markører. Implicitte markører betragtes også som mindre effektive end eksplicitte markører.