Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да създадете PL/SQL слаб референтен курсор в базата данни на Oracle

Защо PL/SQL слаб референтен курсор 

В предишния урок научихме как да извличаме данни от различни типове данни от различни колони, използвайки курсора Strong ref. Силните референтни курсори имат ограничение, че имат фиксиран тип връщане, който може да бъде само тип данни на запис. Фиксираният тип връщане обаче прави силния референтен курсор по-малко податлив на грешки при разработването на приложението. Но това определено изисква допълнителна стъпка за създаване на потребителски дефиниран тип данни на запис.

И така, нямаме ли някакъв алтернативен начин за извличане на данни от различен тип данни с помощта на референтния курсор, който не изисква създаването на потребителски дефиниран тип данни на запис? Не можем ли да създадем референтен курсор, който няма фиксиран тип връщане? Нека разберем отговорите на тези въпроси в този блог.

Какво е PL/SQL слаб референтен курсор в Oracle Database?

Референтен курсор, който няма фиксиран тип връщане, се нарича Weak Ref Cursor.

Можем ли да използваме Weak Ref Cursor с който и да е оператор SELECT или не?

Да, можем. Тъй като слабите референтни курсори нямат фиксиран тип връщане като силните референтни курсори, така че те са отворени за всички типове оператори SELECT. Това също ги прави най-често използваните референтни курсори в сравнение с други.

Предполагам, че сега имате отговорите на горните въпроси. PL/SQL Weak Ref Cursor е алтернативният начин за извличане на данни от различни типове данни. Тъй като слабият референтен курсор няма фиксиран тип връщане, така че няма нужда от създаване на отделен тип данни за запис. Сега, когато изчистихме всичките си съмнения, е време да видим пример, който ще ви помогне да научите как да създавате PL/SQL слаби референтни курсори в Oracle Database.

Синтаксис на слаб референтен курсор

TYPE ref_cursor_name IS REF CURSOR;

Пример:Как да създадете слаб референтен курсор в базата данни на 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;
/

Продължете и опитайте да изпълните тази програма, за да видите какъв ще бъде изходът. Ако желаете, можете също да изтеглите този скрипт от хранилището на GIT. Ето връзките [Script / Git Repository ]

Ако се учите по-добре, като гледате видеоклипове, ето видеоурока за PL/SQL слаб курсор на ref.

Това е урокът как да създадете PL/SQL слаб референтен курсор в Oracle Database. Така че не забравяйте да се абонирате за канала в YouTube. В предстоящия урок ще научим какво е Sys Ref Cursor в Oracle Database. Благодаря и приятен ден!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възможно ли е да се убие една заявка в oracle, без да се убива сесията?

  2. Инкрементално събиране на статистически данни в 11g

  3. Типове данни на Oracle

  4. Как да форматирате числа в Oracle

  5. Oracle 12:Присъединяване към разделен със запетая списък?