В этом учебном материале вы узнаете, как объявить курсор в Oracle/PLSQL c синтаксисом и примерами.
Описание
Курсор это определенный оператор SELECT, который объявлен в PLSQL коде. Рассмотрим три различных синтаксиса объявления курсора.
КУРСОР БЕЗ ПАРАМЕТРОВ (ПРОСТОЙ)
Объявление курсора без каких-либо параметров, простой курсор.
Синтаксис
IS
SELECT_statement;
Например, вы можете определить курсор под названием c1, как показано ниже.
1 2 3 4 5 |
CURSOR c1 IS SELECT course_number FROM courses_tbl WHERE course_name = name_in; |
Результирующий набор этого курсора все course_numbers, у которых course_name соответствует переменной name_in.
Ниже приведена функция, которая использует этот курсор.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
CREATE OR REPLACE Function FindCourse ( name_in IN varchar2 ) RETURN number IS cnumber number; CURSOR c1 IS SELECT course_number FROM courses_tbl WHERE course_name = name_in; BEGIN OPEN c1; FETCH c1 INTO cnumber; if c1%notfound then cnumber := 9999; end if; CLOSE c1; RETURN cnumber; END; |
КУРСОР С ПАРАМЕТРАМИ
Объявим курсор с параметрами.
Синтаксис
IS
SELECT_statement;
Например, вы можете определить курсор под названием c2, как показано ниже.
1 2 3 4 5 |
CURSOR c2 (subject_id_in IN varchar2) IS SELECT course_number FROM courses_tbl WHERE subject_id = subject_id_in; |
Результирующий набор этого курсора все course_numbers, у которых subject_id соответствует subject_id полученные курсором с помощью параметра subject_id_in.
КУРСОР С ВОЗВРАЩАЮЩИМ УСЛОВИЕМ
Наконец, мы можем объявить курсор с возвращающим условием.
Синтаксис
RETURN field%ROWTYPE
IS
SELECT_statement;
Например, вы можете определить курсор под названием c3, как показано ниже.
1 2 3 4 5 6 |
CURSOR c3 RETURN courses_tbl%ROWTYPE IS SELECT * FROM courses_tbl WHERE subject = 'Mathematics'; |
Результирующим набором этого курсора будут все столбцы course_tbl, у которых subject будет 'Mathematics'.