在游标中使用参数
cursor c_name (v_id in TEST01.ID%type) is select id,name ,age addtime from test01 where id =v_id;
在游标中使用参数,需要注意以下重要内容:
游标参数会让该游标的复用性更好。
游标参数可以被赋予默认值。
游标的作用范围是该游标。
参数的模型可以只为in。
当声明支持参数的游标时,必须在调用时提供参数的值。
open c_name (parameter_value)
DECLARE
CURSOR c_name (p_name IN test01.name%TYPE)
IS
SELECT id, name, age FROM test01 WHERE name = p_name;
BEGIN
FOR r_name IN c_name ('bb')
LOOP
DBMS_OUTPUT.put_line (r_name.id || '===' || r_name.age);
END LOOP;
END;
for update 和where current 游标
当希望使用游标来更新数据库的表时,只能使用游标for update子句。
当希望更新最新检索的数据行时,可以使用for current of。只能在for update of 游标中使用where current of
where current of 子句的好处是,免于在update 语句中使用where字句。
DECLARE
CURSOR v_name IS SELECT id, name, age FROM test01 WHERE id < 4
FOR UPDATE OF name;
BEGIN
FOR r_name IN v_name
LOOP
UPDATE test01 SET name = 'vvv' WHERE CURRENT OF v_name;
END LOOP;
COMMIT;
END;
本公众号是个人学习工作笔记,希望大家发现问题能及时和我本人沟通,希望你与我共同成长。个人微信zgjt12306。

欢迎关注“自学Oracle”




