Oracle
 sql >> Database >  >> RDS >> Oracle

Come creare un cursore di riferimento debole PL/SQL nel database Oracle

Perché il cursore di riferimento debole PL/SQL 

Nel tutorial precedente abbiamo imparato come recuperare dati di tipi di dati diversi da colonne diverse utilizzando il cursore di riferimento forte. I cursori di riferimento forte hanno una limitazione che hanno un tipo restituito fisso che può essere solo un tipo di dati di record. Tuttavia, il tipo di ritorno fisso rende un cursore di riferimento forte meno soggetto a errori nello sviluppo dell'applicazione. Ma questo richiede sicuramente un passaggio aggiuntivo per la creazione di un tipo di dati di record definito dall'utente.

Quindi, non abbiamo un modo alternativo per recuperare dati di tipo di dati diverso utilizzando il cursore di riferimento che non richiede la creazione di un tipo di dati di record definito dall'utente? Non possiamo creare un cursore di riferimento che non ha un tipo di ritorno fisso? Scopriamo le risposte a queste domande in questo blog.

Che cos'è un cursore di riferimento debole PL/SQL in Oracle Database?

Un cursore di riferimento che non ha un tipo di ritorno fisso è chiamato cursore di riferimento debole.

Possiamo usare il cursore di riferimento debole con qualsiasi istruzione SELECT o no?

Sì possiamo. Poiché i cursori di riferimento deboli non hanno un tipo di ritorno fisso come i cursori di riferimento forti, quindi sono aperti a tutti i tipi di istruzioni SELECT. Questo li rende anche i cursori di riferimento usati più frequentemente rispetto ad altri.

Immagino che ora tu abbia le risposte alle domande di cui sopra. PL/SQL Weak Ref Cursor è il modo alternativo per recuperare dati di diversi tipi di dati. Poiché il cursore di riferimento debole non ha un tipo di ritorno fisso, quindi non è necessario creare un tipo di dati di record separato. Ora che abbiamo chiarito tutti i nostri dubbi, è tempo di vedere un esempio che ti aiuterà a imparare come creare cursori di riferimento deboli PL/SQL in Oracle Database.

Sintassi del cursore di riferimento debole

TYPE ref_cursor_name IS REF CURSOR;

Esempio:come creare un cursore di riferimento debole in Oracle Database

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;
/

Vai avanti e prova a eseguire questo programma per vedere quale sarà l'output. Se vuoi puoi anche scaricare questo script dal repository GIT. Ecco i link [Script/Git Repository]

Se impari meglio guardando i video, ecco il video tutorial sul cursore di riferimento debole PL/SQL.

Questo è il tutorial su come creare un cursore di riferimento debole PL/SQL in Oracle Database. Quindi assicurati di iscriverti al canale YouTube. Nel prossimo tutorial impareremo cos'è Sys Ref Cursor in Oracle Database. Grazie e buona giornata!