sql >> Databasteknik >  >> RDS >> Oracle

Hur man skapar PL/SQL svag referensmarkör i Oracle Database

Varför PL/SQL svag referensmarkör 

I den tidigare handledningen lärde vi oss hur man hämtar data från olika datatyper från olika kolumner med den starka ref-markören. De starka ref-markörerna har en begränsning att de har fast returtyp som bara kan vara en postdatatyp. Fast returtyp gör dock en stark ref-markör mindre felbenägen i applikationsutvecklingen. Men detta kräver definitivt ett extra steg för att skapa en användardefinierad postdatatyp.

Så, har vi inget alternativt sätt att hämta data av olika datatyper med hjälp av ref-markören som inte kräver skapandet av en användardefinierad datatyp? Kan vi inte skapa en ref-markör som inte har en fast returtyp? Låt oss ta reda på svaren på dessa frågor i den här bloggen.

Vad är en PL/SQL Weak Ref Cursor i Oracle Database?

En ref-markör som inte har en fast returtyp kallas en Weak Ref-markör.

Kan vi använda Weak Ref Cursor med någon SELECT-sats eller inte?

Ja det kan vi. Eftersom svaga ref-markörer inte har en fast returtyp som starka ref-markörer så är de öppna för alla typer av SELECT-satser. Detta gör dem också till de mest använda ref-markörerna i jämförelse med andra.

Jag antar att du nu har fått svaren på ovanstående frågor. PL/SQL Weak Ref Cursor är det alternativa sättet att hämta data av olika datatyper. Eftersom svag ref-markör inte har en fast returtyp så finns det inget behov av att skapa en separat postdatatyp. Nu när vi har rensat alla våra tvivel är det dags att se ett exempel som hjälper dig att lära dig hur du skapar PL/SQL svaga ref-markörer i Oracle Database.

Syntax för svag ref-markör

TYPE ref_cursor_name IS REF CURSOR;

Exempel:Hur man skapar svag referensmarkör i 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;
/

Gå vidare och försök köra det här programmet för att se vad resultatet kommer att bli. Om du vill kan du också ladda ner det här skriptet från GIT-förvaret. Här är länkarna [Script / Git Repository ]

Om du lär dig bättre genom att titta på videor, så här är videohandledningen om PL/SQL svag ref-markör.

Det är handledningen om hur man skapar PL/SQL svag ref-markör i Oracle Database. Så se till att prenumerera på YouTube-kanalen. I den kommande handledningen kommer vi att lära oss vad som är Sys Ref Cursor i Oracle Database. Tack och ha en bra dag!


  1. MySQL - Rader till kolumner

  2. MySQL Group av SUM

  3. Hur Strftime()-funktionen fungerar i SQLite

  4. Använder strace som ett DG40DBC-felsökningsverktyg på Linux