sql >> Databáze >  >> RDS >> Oracle

Jak vytvořit slabý referenční kurzor PL/SQL v databázi Oracle

Proč PL/SQL slabý referenční kurzor

V předchozím tutoriálu jsme se naučili, jak načíst data různých datových typů z různých sloupců pomocí silného referenčního kurzoru. Silné ref kurzory mají omezení, že mají pevný návratový typ, který může být pouze datovým typem záznamu. Pevný návratový typ však činí silný referenční kurzor méně náchylný k chybám při vývoji aplikací. To ale rozhodně vyžaduje další krok – vytvoření uživatelem definovaného datového typu záznamu.

Nemáme tedy nějaký alternativní způsob načítání dat jiného datového typu pomocí ref kurzoru, který nevyžaduje vytvoření uživatelsky definovaného datového typu záznamu? Nemůžeme vytvořit referenční kurzor, který nemá pevný návratový typ? Odpovědi na tyto otázky najdete v tomto blogu.

Co je slabý referenční kurzor PL/SQL v databázi Oracle?

Referenční kurzor, který nemá pevný návratový typ, se nazývá slabý referenční kurzor.

Můžeme použít slabý referenční kurzor s jakýmkoli příkazem SELECT nebo ne?

Ano, můžeme. Protože slabé ref kurzory nemají pevný návratový typ jako silné ref kurzory, jsou tedy otevřené všem typům příkazů SELECT. To z nich také dělá nejčastěji používané referenční kurzory ve srovnání s ostatními.

Myslím, že nyní jste dostali odpovědi na výše uvedené otázky. PL/SQL Weak Ref Cursor je alternativní způsob načítání dat různých datových typů. Protože slabý referenční kurzor nemá pevný návratový typ, není potřeba vytvářet samostatný datový typ záznamu. Nyní, když jsme odstranili všechny naše pochybnosti, je čas podívat se na příklad, který vám pomůže naučit se vytvářet slabé referenční kurzory PL/SQL v databázi Oracle.

Syntaxe slabého referenčního kurzoru

TYPE ref_cursor_name IS REF CURSOR;

Příklad:Jak vytvořit slabý referenční kurzor v databázi Oracle

SET SERVEROUTPUT ON;
DECLARE
    /*Declare Weak Ref Cursor*/
    TYPE wk_RefCur IS REF CURSOR;
    /*Declare Cursor Variable of ref cursor type*/
    cur_var wk_RefCur;
    
     /*Declare two "Anchored Datatype Variable" for holding data from the cursor*/
    f_name  employees.first_name%TYPE;
    emp_sal employees.salary%TYPE;
BEGIN
    OPEN cur_var FOR SELECT first_name, Salary FROM employees WHERE employee_id = 100;
    FETCH cur_var INTO f_name, emp_sal;
    CLOSE cur_var;
    DBMS_OUTPUT.PUT_LINE (f_name ||' '||emp_sal);
END;
/

Pokračujte a zkuste tento program spustit, abyste viděli, jaký bude výstup. Pokud chcete, můžete si tento skript také stáhnout z úložiště GIT. Zde jsou odkazy [Script / Git Repository]

Pokud se lépe učíte sledováním videí, pak zde je videonávod o slabém referenčním kurzoru PL/SQL.

Toto je návod, jak vytvořit slabý referenční kurzor PL/SQL v databázi Oracle. Nezapomeňte se tedy přihlásit k odběru kanálu YouTube. V nadcházejícím tutoriálu se naučíme, co je Sys Ref Cursor v databázi Oracle. Děkuji a přeji hezký den!


  1. PostgreSQL sekvence bez mezer

  2. Jak načíst první a poslední záznam seskupeného záznamu v dotazu MySQL s agregačními funkcemi?

  3. Jak používat pgBackRest k zálohování PostgreSQL a TimescaleDB

  4. Vrácení seznamu tabulek z propojeného serveru v SQL Server (příklady T-SQL)