java面试题网站:www.javaoffers.com
在项目中见到这样的存储过程代码:
procedure procedure_name (out_param out cursorType, out_param2 out cursorType, in_param in cursorType )
is
sql varchar2(3200);
begin
open out_param for
with t2 as (select * from table2) --这里可以把 t2 看作临时表,在java中就好像抽取公共的 方法,
其实这里就是抽取 公共的sql ,目的为了优化
select *
from table1 , t2
end
这里 out_param 为游标类型,也就是 open out_param for 下的 查询 结果会放在 out_param中,其实是在resultSet中 out_param 作为 当前结果集的游标,注意,这里如果是 open out_param2 for 那么结果集就会选用 out_param2 来作为当前结果集的游标, 用java的理解方式: 结果集为一个Map类型 实例对象, 这个实例对象指向 out_param2 变量。通过这个变量来访问 对象中的数据。