Вступ до курсорів у PL / SQL

PL / SQL - одна з найбільш широко використовуваних мов програмування, коли мова йде про програмування баз даних. Деякі важливі концепції PL / SQL програміст PL / SQL повинен чітко вивчити та зрозуміти, щоб правильно їх використовувати. Курсор - один з них. У програмі PL / SQL оператори SQL потрібно виконати наприкінці. Курсор - це як вказівник, який використовується для вказівки на область контексту, створену Oracle для виконання оператора SQL. Курсор містить усі рядки, повернуті після обробки операторів SQL. Набір рядка, який утримує курсор, називається активним набором. Курсор також може бути названий для подальшого використання програмістом. У цій темі ми збираємося дізнатися про курсори в PL / SQL.

Типи курсорів

Є два типи курсорів, які використовуються в програмуванні PL / SQL:

1. Неявні курсори

Як видно з назви, непрямі курсори - це ті курсори, які автоматично створюються Oracle при виконанні будь-яких операцій DML, таких як INSERT, DELETE, UPDATE. Коли програміст не створює жодного курсору, Oracle сам створює його для утримання рядків, на які впливає оператор DML. Програміст не може назвати цих курсорів, і тому їх не можна пересилати та використовувати в іншому місці коду. Хоча Oracle надає деякі атрибути для виконання деяких операцій на ньому

% FOUND, % NOTFOUND, % ROWCOUNT, % ISOPEN.

S.No.АтрибутОпис
1.% ЗНАЙДЕНОПовертає значення True, якщо оператори DML, такі як INSERT,

DELETE, UPDATE впливають на один або кілька рядків, або оператор SELECT повертає один або кілька рядків. В іншому випадку він повертає False

2.%НЕ ЗНАЙДЕНОЦе протилежний атрибуту% FOUND, він повертає значення True, якщо жоден із рядків не впливає на оператор DML або на оператор SELECT не повертає результатів. В іншому випадку він повертає False.
3.% ISOPENУ випадку неявних курсорів він завжди повертає значення False, оскільки Oracle закриває курсор відразу після виконання операторів SQL.
4.% ROWCOUNTВін повертає кількість рядків Тобто підрахунок кількості рядків, на які впливає згаданий DML
заяви програміста в коді PL / SQL, такі як INSERT, DELETE та UPDATE, або кількість рядків, які повертаються оператором SELECT INTO.
Приклад

Сценарій: Оновити оцінки всіх студентів у таблиці "студент" англійською темою, що має стовпець "Предмет", на 10.

DECLARE
affected_rows number(4);
BEGIN
UPDATE students SET marks = marks+10 where subject = 'English';
IF​ sql%NOTFOUND THEN dbms_output.put_line ('No records of English subject are updated');
ELSIF sql%FOUND THEN​ affected rows: = affected rows%rowcount
dbms_output.put_line('Congrats ..Records Updated' || affected_rows);
END IF;
END;
/

2. Явні курсори

Явні курсори - це ті курсори, які визначені програмістами для більшого контролю над контекстною областю (де зберігаються результати SQL-запитів). Ці курсори потрібно спочатку визначити у блоці декларацій програми PL / SQL. Він створений для операторів SQL, які повертають більше одного ряду після їх обробки. Існує конкретна процедура, яку необхідно дотримуватися для використання явного курсору. Кроки до використання явного курсору згадані нижче:

1. Оголосити курсор: Він використовується для надання імені контекстній області / курсору разом із оператором select, який потрібно виконати.

Синтаксис

CURSOR cursor_name IS SELECT statement;

2. Відкрийте курсор: Відкриваючи курсор, виділяється йому пам'ять і надає його для отримання записів, повернених оператором SQL.

Синтаксис

OPEN cursor_name;

3. Вилучити курсор: У цьому процесі одночасно доступ до одного рядка. Оператор SELECT виконується і видобуті рядки зберігаються в контекстній області. Він отримує записи та присвоює їм змінну, що визначається.

Синтаксис

FETCH cursor_name INTO variable;

4. Закрийте курсор: Цей крок використовується для закриття відкритого вище курсору для розміщення пам'яті після успішного отримання всіх збережених рядків.

Синтаксис

CLOSE cursor_name;

Приклад

Сценарій: Отримайте в таблиці прізвище, адресу та загальний відсоток учнів

"студент" зі стовпцями "ім'я", "адреса" та "відсоток"

DECLARE
stud_name student.name%type; stud_address student.address%type;
stud_percentage student.percentage%type;
CURSOR stud IS SELECT name, address, percentage FROM student; BEGIN
Open stud;
LOOP
FETCH stud into stud_name, stud_address, stud_percentage;
EXIT when stud%NOTFOUND;
dbms_ouput.put_line(stud_name || ' ' || stud_address || ' ' || stud_percentage);
END LOOP;
CLOSE stud;
END
/

Дії курсору

На відміну від SQL, який працює на всіх рядках у наборі результатів за один раз, курсор використовується головним чином у сценаріях, коли програміст хоче обробляти та отримувати дані по одному рядку за один раз.

Нижче згадуються деякі дії курсору:

  1. Оголосити курсор: Важливо оголосити курсор перед його використанням. Курсор оголошується шляхом визначення оператора SQL, який потрібно обробити.
  2. Відкриття курсору: Після оголошення курсор відкривається та заповнюється поверненням даних обробкою оператора SQL.
  3. Вилучити курсор: Після відкриття курсору вихідні рядки потрібно отримати один за одним, щоб виконати будь-які маніпуляції, якщо це потрібно.
  4. Закрийте курсор: Після всіх маніпуляцій з даними. Створений курсор потрібно закрити
  5. Розподілити: Цей крок включає видалення курсору та звільняє всі ресурси, що містяться в ньому.

Важливість курсору в PL / SQL

Вказівка ​​на місце пам’яті та виконання відповідних дій є одним із важливих завдань будь-якої мови програмування. У PL / SQL це роблять Курсори. Курсори відіграють вирішальну роль, коли справа доходить до виконання різних завдань, надаючи ім'я області пам’яті (контекстній області), де зберігаються результати запитів SQL. Ми можемо отримувати доступ до записів по черзі та виконувати будь-які маніпуляції в ній, якщо потрібно, або відображати їх на консолі відповідно. Явні курсори ефективніші, дають більше програмного контролю та менш вразливі до помилок даних, тому вони дуже корисні в програмуванні PL / SQL, ніж неявні.

Висновок

Програмування баз даних дуже популярне в наші дні, і PL / SQL - одна з мов, яку слід дуже добре використовувати в ній. Курсори надають більше контролю програмісту для доступу до отриманих даних. Щоб програміст працював на PL / SQL, важливо знати використання та важливість курсора для ефективної роботи.

Рекомендовані статті

Це посібник з курсорів в PL / SQL. Тут ми обговорюємо типи курсорів, які використовуються в програмуванні PL / SQL, з курсорними діями та важливість курсору. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Типи об'єднань у SQL
  2. SQL Insert Query
  3. Таблиця в SQL
  4. Підстановка в SQL
  5. Топ 6 типів приєднань до MySQL з прикладами