Rozdíl Mezi Explicitním Kurzorem A Implicitním Kurzorem

Rozdíl Mezi Explicitním Kurzorem A Implicitním Kurzorem
Rozdíl Mezi Explicitním Kurzorem A Implicitním Kurzorem

Video: Rozdíl Mezi Explicitním Kurzorem A Implicitním Kurzorem

Video: Rozdíl Mezi Explicitním Kurzorem A Implicitním Kurzorem
Video: CS50 2014 - Week 9, continued 2024, Listopad
Anonim

Explicitní kurzor vs implicitní kurzor

Pokud jde o databáze, kurzor je kontrolní struktura, která umožňuje procházet záznamy v databázi. Kurzor poskytuje mechanismus k přiřazení názvu k příkazu SQL select a poté jej lze použít k manipulaci s informacemi v tomto příkazu SQL. Implicitní kurzory jsou automaticky vytvářeny a používány pokaždé, když je v PL / SQL vydán příkaz Select, pokud není k dispozici explicitně definovaný kurzor. Explicitní kurzory, jak název napovídá, jsou vývojářem definovány explicitně. V PL / SQL je explicitní kurzor vlastně pojmenovaný dotaz definovaný pomocí kurzoru klíčového slova.

Co je implicitní kurzor?

Implicitní kurzory jsou automaticky vytvářeny a používány společností Oracle pokaždé, když je vydán příkaz select. Pokud se použije implicitní kurzor, provede systém správy databáze (DBMS) operace otevření, načtení a zavření automaticky. Implicitní kurzory by se měly používat pouze s příkazy SQL, které vracejí jeden řádek. Pokud příkaz SQL vrátí více než jeden řádek, použití implicitního kurzoru způsobí chybu. Implicitní kurzor je automaticky přidružen ke každému příkazu DML (Data Manipulation Language), konkrétně k příkazům INSERT, UPDATE a DELETE. Implicitní kurzor se také používá ke zpracování příkazů SELECT INTO. Při načítání dat pomocí implicitních kurzorů lze výjimku NO_DATA_FOUND vyvolat, když příkaz SQL nevrátí žádná data. Dáleimplicitní kurzory mohou zvýšit TOO_MANY_ROWS výjimky, když příkaz SQL vrátí více než jeden řádek.

Co je Explicitní kurzor?

Jak již bylo zmíněno dříve, explicitní kurzory jsou dotazy definované pomocí názvu. Explicitní kurzor lze považovat za ukazatel na sadu záznamů a ukazatel lze v rámci sady záznamů přesunout dopředu. Explicitní kurzory poskytují uživateli úplnou kontrolu nad otevíráním, zavíráním a načítáním dat. Rovněž lze načíst více řádků pomocí explicitního kurzoru. Explicitní kurzory mohou také brát parametry jako každá funkce nebo procedura, takže proměnné v kurzoru lze změnit při každém spuštění. Explicitní kurzory vám navíc umožňují načíst celý řádek do proměnné záznamu PL / SQL. Při použití explicitního kurzoru je nejprve nutné jej deklarovat pomocí názvu. K atributům kurzoru lze přistupovat pomocí názvu daného kurzoru. Po deklaraci je třeba nejprve otevřít kurzor. Poté lze zahájit načítání. Pokud je třeba načíst více řádků, je třeba provést operaci načítání uvnitř smyčky. Nakonec je třeba zavřít kurzor.

Rozdíl mezi explicitním kurzorem a implicitním kurzorem

Hlavní rozdíl mezi implicitním kurzorem a explicitním kurzorem spočívá v tom, že explicitní kurzor je třeba definovat explicitně zadáním názvu, zatímco implicitní kurzory se automaticky vytvoří, když vydáte příkaz select. Kromě toho lze načíst více řádků pomocí explicitních kurzorů, zatímco implicitní kurzory mohou načíst pouze jeden řádek. Také výjimky NO_DATA_FOUND a TOO_MANY_ROWS nejsou vyvolány při použití explicitních kurzorů, na rozdíl od implicitních kurzorů. V podstatě jsou implicitní kurzory zranitelnější vůči chybám dat a poskytují méně programové kontroly než explicitní kurzory. Implicitní kurzory jsou také považovány za méně efektivní než explicitní kurzory.

Doporučená: