Помощь в учёбе, очень быстро...
Работаем вместе до победы

Курсор в PL/SQL

РефератПомощь в написанииУзнать стоимостьмоей работы

Здесь переменная q используется для сохранения результатов выполнения курсора. Управление явным курсором производится по следующей схеме, см. рис. 4. Запрос программирование курсор выборка. Синтаксис объявления явного курсора: Пример. Выборка данных из курсора. Рис. 4. Схема управления курсором. Пример. Выборка данных в цикле. CURSOR имя_курсора IS команда_SELECT; DBMS_OUTPUT.PUT_LINE (q.ns… Читать ещё >

Курсор в PL/SQL (реферат, курсовая, диплом, контрольная)

Для выборки из базы данных многих записей и последующей обработке их в программе вводится понятие курсора. Курсор может быть неявным или явным. При однострочной выборке, курсор обычно неявный. При многострочной выборке необходимо явно указать курсор.

Синтаксис объявления явного курсора:

CURSOR имя_курсора IS команда_SELECT;

Пример.

DECLARE.

CURSOR q IS.

SELECT ns, name FROM sotrud.

WHERE ns=140;

Управление явным курсором производится по следующей схеме, см. рис. 4.

запрос программирование курсор выборка.

Схема управления курсором.

Рис. 4. Схема управления курсором

Пример. Выборка данных из курсора.

SET SERVEROUTPUT ON.

DECLARE.

CURSOR q IS.

SELECT ns, name FROM sotrud.

WHERE ns=140;

num sotrud. ns%TYPE;

lname sotrud.name%TYPE;

BEGIN.

OPEN q;

FETCH q INTO num, lname;

DBMS_OUTPUT.PUT_LINE (num || ` ` || lname);

.. .

END;

Пример. Выборка данных в цикле.

SET SERVEROUTPUT ON.

DECLARE.

CURSOR q IS.

SELECT ns, name FROM sotrud.

WHERE ns=140;

num sotrud. ns%TYPE;

lname sotrud.name%TYPE;

BEGIN.

OPEN q;

LOOP.

FETCH q INTO num, lname;

EXIT WHEN q%NOTFOUND;

DBMS_OUTPUT.PUT_LINE (num || ` ` || lname);

END LOOP;

.. .

END;

Курсорный цикл FOR.

Курсорный цикл FOR включает курсор SELECT и позволяет осуществлять выборку нескольких строк из базы данных. При этом не нужно заботиться об открытии и закрытии курсора. ORACLE сделает это самостоятельно внутри цикла. В цикле FOR объявлять курсор не требуется.

Пример.

SET SERVEROUTPUT ON.

BEGIN.

FOR q IN (SELECT ns, name FROM sotrud.

WHERE ns=140;

LOOP.

DBMS_OUTPUT.PUT_LINE (q.ns || ` ` || q.name);

END LOOP;

END;

Здесь переменная q используется для сохранения результатов выполнения курсора.

Показать весь текст
Заполнить форму текущей работой