Oracle游标动态赋值
1. oracle游标动态赋值的⼩例⼦
-- 实现1:动态给游标赋值
-- 实现2:游标⽤表的rowtype声明,但数据却只配置表⼀⾏的某些字段时,遍历游标时需fetch into到精确字段CREATE OR REPLACE PROCEDURE proc_cursor1(
-- 参数区域
)
is
--变量区域
-- 定义⼀个游标集类型
type cur_type is ref cursor;
-- 定义⼀个游标
cur_student cur_type;
-- 遍历游标时使⽤,此处类型匹配了student的⼀⾏数据
stu_id student%rowtype;
-- sql脚本
v_sql varchar2(2000) :='';
begin
--执⾏区域
v_sql :='select id from student'; -- 查询的时候,并没有查询student⼀⾏的所有数据
open cur_student for v_sql; --此处动态给游标赋值
loop
fetch cur_student into stu_id.id; -- 游标的⼀⾏数据,只匹配student的某个字段时,要fetch into到精确字段exit when cur_student%notfound;
update student t set t.age = (t.age+1) where t.id = stu_id.id;
end loop;
end proc_cursor1;
/
2. oracle游标最常⽤的使⽤⽅法
-- oracle游标最常⽤的使⽤⽅法
CREATE OR REPLACE PROCEDURE proc_cursor2(
-- 参数区域
)
is
--变量区域
-
- 声明游标并赋值oracle游标的使用
Cursor cur_stu is select id from student;
begin
--执⾏区域
for this_val in cur_stu LOOP
begin
update student t set t.age = (t.age+1) where t.id = this_val.id;
end;
end LOOP;
end proc_cursor2;
/

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。