这篇Oracle教程解释了如何在Oracle / PLSQL中声明游标的语法和示例。
游标是在PLSQL代码的声明部分中定义的SELECT
语句。下面来看看三种不同的语法来声明游标。
1. 没有参数的游标(最简单)
在没有任何参数的情况下声明游标是最简单的游标。
语法
Oracle / PLSQL中没有参数的游标的语法是:
CURSOR cursor_name IS SELECT_statement;
示例
例如,可以像下面那样定义一个名为c1
的游标。
CURSOR c1 IS SELECT course_number FROM courses_tbl WHERE course_name = name_in;
该游标的结果集是所有course_name
,其course_name
与name_in
变量匹配。
下面是使用这个游标的函数。
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;
带参数游标
随着来看更加复杂一点的应用,可以用参数声明游标。
语法
Oracle / PLSQL中具有参数的游标的语法是:
CURSOR cursor_name (parameter_list) IS SELECT_statement;
示例
例如,可以定义一个名为c2
的游标,如下所示。
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
相匹配。
带有return子句的游标
最后,可以用return
子句声明一个游标。
语法
Oracle / PLSQL中带有return
子句的游标的语法是:
CURSOR cursor_name RETURN field%ROWTYPE IS SELECT_statement;
示例
例如,可以像下面那样定义一个名为c3
的游标。
CURSOR c3 RETURN courses_tbl%ROWTYPE IS SELECT * FROM courses_tbl WHERE subject = 'Mathematics';
这个游标的结果集是来自course_tbl
的科目是数学的所有列。
THE END
暂无评论内容