一般游标中,SELECT语句都没有WHERE子句,或者用WHERE子句指定了一个固定的条件,这样每次都查询同样的数据。在更多的情况下,可能要根据实际情况查询不同的数据。为了通过游标对数据进行更加灵活的处理,可以为游标定义参数,这些参数可以用在WHERE子句中。在打开游标时,指定实际的参数值,这样游标在每次打开时,可以根据不同的实际参数值,返回所需的不同数据。
定义带参数的游标的语法格式为:
DECLARE
CURSOR 游标名(参数1, 参数2, ...)
IS
SELECT语句;
其中参数的定义方法与子程序中的参数定义完全相同,可以指定默认值,指定参数传递模式。默认的参数传递模式为IN,如果要使用OUT或者“IN OUT”模式,就需要明确指定。由于游标一般不需要通过参数向调用者传递数据,所以OUT模式在游标中没有什么实际用处。
在用OPEN命令打开游标时,要向游标提供实际参数,游标根据提供的参数值,查询符合条件的数据。打开游标的语法格式为:
OPEN游标名(实际参数1, 实际参数2...);
例:
DECLARE CURSOR cur_6(d_no IN emp.deptno%type, min_sal IN emp.sal%type := 1000) IS SELECT en