Che cosa sono i cursori di riferimento PL/SQL nel database Oracle?
Quando si tratta di prestazioni, i cursori di riferimento PL/SQL in Oracle si sono sempre dimostrati superiori ai cursori statici. A causa della capacità di un singolo cursore di riferimento di essere associato a più istruzioni SELECT in un singolo blocco PL/SQL. Inoltre, ciò riduce la necessità di scrivere cursori espliciti separati. Inoltre li rende una caratteristica altamente efficiente, flessibile e robusta del linguaggio PL/SQL. Quindi esploriamo i cursori di riferimento in PL/SQL e scopriamo di più a riguardo.
Cosa sono i cursori di riferimento PL/SQL in Oracle Database?
Ref Cursor è l'acronimo di Reference to a Cursor. È un tipo di dati PL/SQL che consente di dichiarare un tipo speciale di variabile denominata Cursor Variable.
La variabile cursore e il cursore di riferimento sono collegati tra loro?
Questa è un'ottima domanda. Ho visto in molti libri che entrambi questi nomi sono usati in modo intercambiabile. Tuttavia, entrambi sono due argomenti separati ma interdipendenti.
Da un lato la variabile del cursore è come un puntatore che si riferisce a un'area di contesto diversa in SGA. Considerando che Ref Cursor è un tipo di dati che contiene un valore del cursore.
Allora, in che modo Cursor Variable e Ref Cursors sono interdipendenti l'uno dall'altro?
Come accennato in precedenza, le variabili del cursore sono dichiarate con l'aiuto dei cursori di riferimento. Di conseguenza, possiamo dire che in Oracle Database esistono variabili cursore sotto forma di Ref Cursori.
Definizione di variabile cursore
Usando tutte le informazioni di cui sopra possiamo definire la variabile cursore come:Una variabile di Ref Cursor Type è chiamata Cursor Variable.
Qual è la sintassi per dichiarare il cursore di riferimento?
Ecco la sintassi generalizzata per dichiarare i cursori Ref in Oracle Database:
DECLARE TYPE [cursor_variable_name] IS REF CURSOR [RETURN (return_type)];
La sintassi può essere modificata e utilizzata a seconda del tipo di cursori di riferimento che si desidera utilizzare nell'applicazione. Detto questo, vediamo i tipi di Ref Cursori disponibili in Oracle Database.
Quanti tipi di cursori di riferimento PL/SQL abbiamo?
Esistono due tipi di cursori di riferimento in PL/SQL. Questi sono:
- Cursore di riferimento forte e
- Cursore Ref debole
Che cos'è Strong Ref Cursor in Oracle Database?
Qualsiasi cursore di riferimento che ha un tipo di ritorno fisso è chiamato cursore di riferimento forte.
Inoltre, tali cursori di riferimento possono essere utilizzati solo con alcune istruzioni SELECT. Inoltre, il risultato del tipo di dati dell'istruzione SELECT dovrebbe corrispondere a quello corretto durante la dichiarazione del cursore forte.
Sintassi di forti cursori di riferimento in PL/SQL
Ecco la sintassi del cursore di riferimento forte.
DECLARE TYPE cursor_variable_name IS REF CURSOR RETURN (return type);
La clausola di ritorno gioca un ruolo molto importante nella dichiarazione di un cursore di riferimento. Ne restringe la portata. E rende il tuo cursore di riferimento limitato solo a quelle istruzioni SELECT che restituiscono il risultato il cui tipo di dati corrisponde a quello che hai specificato nella clausola RETURN durante la dichiarazione.
Anche il tipo di ritorno di un Ref Cursor deve essere sempre di Record Datatype. Può essere la struttura del record di una tabella o la struttura del record definita dall'utente.
Che cos'è un cursore di riferimento debole in Oracle Database?
Contrariamente ai cursori di riferimento forti, i cursori di riferimento deboli sono quelli che non hanno alcun tipo di ritorno. In altre parole, quei cursori di riferimento che non hanno un tipo di ritorno fisso sono chiamati cursori di riferimento deboli.
Poiché i cursori Ref deboli non hanno alcun tipo di ritorno fisso, sono aperti a tutte le istruzioni SELECT. E questo li rende uno dei cursori di riferimento più utilizzati in PL/SQL.
Sintassi dei cursori di riferimento deboli in PL/SQL
DECLARE TYPE ref_cursor_name IS REF CURSOR;
Fatta eccezione per la clausola di ritorno mancante, la sintassi è praticamente simile ai cursori di riferimento forti.
Uno studio canadese suggerisce che gli esseri umani sono biologicamente predisposti per essere pigri. Inoltre, qual è lo scopo di avere un computer con tutte queste capacità di elaborazione quando dobbiamo fare tutto il duro lavoro di dichiarare un tipo di puntatore Ref e quindi creare una variabile.
Bene, miei cari amici, se siete uno di quelli che vogliono astenersi dal fare tutto il duro lavoro di creare una variabile cursore, Oracle PL/SQL ha un'opzione per voi. Questa opzione ti servirà come variabile cursore creata in modo implicito. Quindi, vediamo di cosa si tratta.
Sys_RefCursor
Il cursore Sys Ref è una variabile del cursore incorporata in Oracle. Dichiara un cursore di riferimento debole e anche quello senza dichiarare il tipo di puntatore di riferimento. Per lo più è usato come cursore generico che può essere passato come argomento a un sottoprogramma memorizzato.
Questo è tutto per questo tutorial sull'introduzione ai cursori di riferimento PL/SQL in Oracle Database. Resta sintonizzato poiché nei prossimi tutorial faremo alcune dimostrazioni pratiche del Ref Cursor in Oracle PL/SQL.
Puoi anche fare riferimento al video tutorial sullo stesso argomento sul mio canale YouTube per maggiori dettagli.
Grazie per esserti fermato. Buona giornata!