Открытие курсора
При открытии курсора выполняется запрос и определяется активное множество, которое состоит из всех строк, которые удовлетворяют критерию поиска. Для курсоров, объявленных с клаузой FOR UPDATE, оператор OPEN также блокирует эти строки.
Синтаксис:
cursor_name |
Имя ещё не открытого явного курсора. |
input_parameter |
Имя формального параметра курсора, на который обычно ссылаются в клаузе WHERE. |
Пример оператора OPEN:
DECLARE
CURSOR c1 IS SELECT ename, job FROM emp WHERE sal < 3000;
...
BEGIN
OPEN c1;
Строки активного множества не получаются после выполнения оператора OPEN. Оператор FETCH получает строки.
Передача параметров
Оператор OPEN используется для передачи параметров курсору. Если не нужно использовать значения по умолчанию, каждому формальному параметру в объявлении курсора должен соответствовать фактический параметр в операторе OPEN. Например, для следующего объявления курсора
DECLARE
emp_name emp.ename%TYPE;
salary emp.sal%TYPE;
CURSOR c1 (name VARCHAR2, salary NUMBER) IS SELECT ...
любой из следующих операторов открывает курсор:
OPEN c1(emp_name, 3000);
OPEN c1('ATTLEY', 1500);
OPEN c1(emp_name, salary);
В последнем примере, когда идентификатор salary использовался в объявлении курсора, он ссылался на формальный параметр. Но, когда он используется в операторе OPEN, он ссылается на переменную PL/SQL. Для избежания путаницы нужно использовать уникальные идентификаторы.
Формальные параметры, объявленные с значением по умолчанию не нуждаются в соответствующем фактическом параметре. Им просто присваивается значение по умолчанию при выполнении оператора OPEN.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.