Razlika između eksplicitnog i implicitnog kursora

Razlika između eksplicitnog i implicitnog kursora
Razlika između eksplicitnog i implicitnog kursora

Video: Razlika između eksplicitnog i implicitnog kursora

Video: Razlika između eksplicitnog i implicitnog kursora
Video: iPhone 3GS iOS 6.1.6. Джейлбрейк и разлочка (анлок). Инструкция 2024, Srpanj
Anonim

Eksplicitni pokazivač protiv implicitnog pokazivača

Kada je riječ o bazama podataka, kursor je kontrolna struktura koja omogućuje kretanje po zapisima u bazi podataka. Kursor osigurava mehanizam za dodjelu imena SQL izrazu odabira, a zatim se može koristiti za manipuliranje informacijama unutar tog SQL izraza. Implicitni kursori automatski se stvaraju i koriste svaki put kada se izda naredba Select u PL/SQL-u, kada ne postoji eksplicitno definiran kursor. Eksplicitne pokazivače, kao što ime sugerira, izričito definira programer. U PL/SQL eksplicitni kursor je zapravo imenovani upit definiran pomoću ključne riječi kursor.

Što je implicitni pokazivač?

Implicitne pokazivače automatski kreira i koristi Oracle svaki put kada se izda naredba odabira. Ako se koristi implicitni kursor, Sustav za upravljanje bazom podataka (DBMS) automatski će izvesti operacije otvaranja, dohvaćanja i zatvaranja. Implicitne kursore treba koristiti samo sa SQL naredbama koje vraćaju jedan red. Ako SQL naredba vrati više od jednog retka, korištenje implicitnog pokazivača dovest će do pogreške. Implicitni pokazivač se automatski pridružuje svakoj izjavi jezika za upravljanje podacima (DML), naime izjavama INSERT, UPDATE i DELETE. Također, implicitni kursor se koristi za obradu SELECT INTO iskaza. Prilikom dohvaćanja podataka korištenjem implicitnih kursora NO_DATA_FOUND može se pokrenuti iznimka kada SQL naredba ne vrati podatke. Nadalje, implicitni pokazivači mogu izazvati TOO_MANY_ROWS izuzetaka kada SQL izjava vrati više od jednog retka.

Što je eksplicitni pokazivač?

Kao što je ranije spomenuto, eksplicitni kursori su upiti definirani pomoću imena. Eksplicitni kursor se može smatrati pokazivačem na skup zapisa i pokazivač se može pomicati naprijed unutar skupa zapisa. Eksplicitni pokazivači pružaju korisniku potpunu kontrolu nad otvaranjem, zatvaranjem i dohvaćanjem podataka. Također, više redaka se može dohvatiti korištenjem eksplicitnog kursora. Eksplicitni kursori također mogu uzimati parametre baš kao i svaka funkcija ili procedura tako da se varijable u kursoru mogu mijenjati svaki put kada se on izvrši. Osim toga, eksplicitni kursori omogućuju vam da dohvatite cijeli red u PL/SQL varijablu zapisa. Kada koristite eksplicitni kursor, prvo ga treba deklarirati pomoću imena. Atributima pokazivača može se pristupiti pomoću imena koje je dano pokazivaču. Nakon deklaracije potrebno je prvo otvoriti kursor. Tada se može započeti s dohvaćanjem. Ako je potrebno dohvatiti više redaka, operacija dohvaćanja mora se obaviti unutar petlje. Na kraju, kursor treba zatvoriti.

Razlika između eksplicitnog kursora i implicitnog kursora

Glavna razlika između implicitnog kursora i eksplicitnog kursora je u tome što eksplicitni kursor treba biti definiran eksplicitno davanjem naziva, dok se implicitni kursori automatski kreiraju kada izdate naredbu odabira. Nadalje, više redaka može se dohvatiti korištenjem eksplicitnih kursora, dok implicitni kursori mogu dohvatiti samo jedan red. Također se ne pokreću iznimke NO_DATA_FOUND i TOO_MANY_ROWS kada se koriste eksplicitni kursori, za razliku od implicitnih kursora. U biti, implicitni kursori su osjetljiviji na pogreške u podacima i pružaju manje programske kontrole od eksplicitnih kursora. Također, implicitni kursori smatraju se manje učinkovitima od eksplicitnih kursora.

Preporučeni: