sql >> Database >  >> RDS >> Oracle

Hoe maak je een PL/SQL zwakke ref-cursor in Oracle Database?

Waarom PL/SQL zwakke ref-cursor 

In de vorige tutorial hebben we geleerd hoe we gegevens van verschillende datatypes uit verschillende kolommen kunnen ophalen met behulp van de sterke ref-cursor. De sterke ref-cursors hebben een beperking dat ze een vast retourtype hebben dat alleen een recordgegevenstype kan zijn. Een vast retourtype maakt een sterke ref-cursor echter minder foutgevoelig bij de ontwikkeling van de applicatie. Maar dit vereist absoluut een extra stap van het maken van een door de gebruiker gedefinieerd gegevenstype voor records.

Dus, hebben we geen alternatieve manier om gegevens van een ander gegevenstype op te halen met behulp van de ref-cursor waarvoor geen door de gebruiker gedefinieerd recordgegevenstype hoeft te worden gemaakt? Kunnen we geen ref-cursor maken die geen vast retourtype heeft? Laten we de antwoorden op deze vragen in deze blog ontdekken.

Wat is een PL/SQL Weak Ref Cursor in Oracle Database?

Een ref-cursor die geen vast retourtype heeft, wordt een Weak Ref Cursor genoemd.

Kunnen we Weak Ref Cursor gebruiken met een SELECT-instructie of niet?

Ja dat kunnen we. Omdat zwakke ref-cursors geen vast retourtype hebben zoals sterke ref-cursors, staan ​​ze open voor alle soorten SELECT-instructies. Dit maakt ze ook de meest gebruikte ref-cursors in vergelijking met andere.

Ik denk dat je nu de antwoorden op de bovenstaande vragen hebt. PL/SQL Weak Ref Cursor is de alternatieve manier om data van verschillende datatypes op te halen. Omdat de zwakke ref-cursor geen vast retourtype heeft, is het dus niet nodig om een ​​apart recordgegevenstype te maken. Nu we al onze twijfels hebben weggenomen, is het tijd om een ​​voorbeeld te zien dat u zal helpen bij het leren maken van zwakke PL/SQL-ref-cursors in Oracle Database.

Syntaxis van zwakke ref-cursor

TYPE ref_cursor_name IS REF CURSOR;

Voorbeeld:Hoe maak je een zwakke ref-cursor 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;
/

Ga je gang en probeer dit programma uit te voeren om te zien wat de uitvoer zal zijn. Als je wilt, kun je dit script ook downloaden uit de GIT-repository. Hier zijn de links [Script / Git Repository ]

Als je beter leert door video's te bekijken, dan is hier de video-tutorial over PL/SQL zwakke ref-cursor.

Dat is de tutorial over het maken van een PL/SQL zwakke ref-cursor in Oracle Database. Abonneer je dus zeker op het YouTube-kanaal. In de komende tutorial zullen we leren wat Sys Ref Cursor is in Oracle Database. Bedankt en een fijne dag verder!


  1. 4 manieren om dubbele rijen te vinden in MySQL

  2. Hoe te sorteren in SQL

  3. XML Server Optimalisatie van XML-prestaties

  4. Postgresql-gebruikerswachtwoord genereren