CURSOR cur IS SELECT * FROM xxx;
FOR cur_result in cur LOOP
BEGIN V_SUM :=cur_result.列名1+cur_result.列名2 END;
END LOOP;
END;
中的CURSOR cur IS得到的是什么?
用for in 能够得到什么?
答:
CURSOR cur IS是定义一个游标,然后把游标里定义的查询语句存储到游标里
因为查询语句查出来的数据往往是几条记录
但是你用的时候缺只能一条一条取出来用
这时游标的好处就体现出来了
游标存储时 存的是几条记录
但是读取时 他是一条记录一条记录读取的
然后再使用FOR IN循环一下
就可以将你存储在游标里的记录一条一条的读取出来 但是每次只读取一条
以方便你的使用
这种情况如果不使用游标 往往会出现返回多行结果的错误
答2:
CURSOR cur IS 是显性游标,提出的是SELECT * FROM xxx中所有数据,在打开这个游标后 下面的东西都可以引用这个游标内容作为条件了,比如SELECT name FROM aaa ,那么 下面就可以用到 cur.name 作为值来用了,注意CURSOR cur IS提出的是一列数,每循环一次进入下一条数据,直到循环完毕没数据为止.
FOR cur_result in 是隐形游标,使用方法和显性游标大致一样,后面一般是
FOR cur_result in(select ? from ? where ?)loop
...
end loop; 提出的也是一列值,循环一次换下一条
本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1895970,如需转载请自行联系原作者