oracle cursor 用法总结
admin
2023-01-25 13:42:49
0

PL sql中cursor用法是非常广泛的,常常用于存储过程和函数的返回值,其中用于函数的返回值变相的解决了pl sql 没有表值函数的问题,一般的,在java 调用存储过程,所返回的结果集也是用游标去存储的。

游标分为动态游标和静态游标

1,动态游标定义分两种方式一种是先定义自定义类型如 Type my_cursor is ref cursor .这样就可以定义了一个游标类型,然后我们自己的变量就可以用这个自定义类型去定义了,如 cursorDemo my_cursor (直接用系统自带的sys_refcursor也是可以的);另外上面的my_cursor 又可以分为强类型和弱类型,顾名思义,强类型是指在定义的时候指定只能放哪些类型的值,如上面强类型定义Type my_cursor is ref cursor return emp%rowtype. 游标之所以称之为动态是因为可以放不同的值或者不同表的值(限于弱类型,强类型的动态是指相同类型不同表的值),如 open cursorDemo for

select 1 from dual;也可以 open cursorDemo for select a ,b from dual;

2,静态游标就比较简单了,定义的时候直接指定值就好了如 cursor my_cursor is select 1 from dual;


游标的使用。

1,在java中游标是用类型oracleTypes.CURSOR 调用然后返回结果,部分代码参考如下

CallableStatement cs = ct.prepareCall("{call findset_emp(?,?)}");  

            cs.setInt(1, 10);  

            cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);  

              

            cs.execute();  

            ResultSet rs = (ResultSet)cs.getObject(2);  

            while(rs.next()){  

                System.out.println(rs.getInt(1)+" "+rs.getString(2));  

            } 

2,在存储过程或者函数中可以使用for  循环和fetch去调用

for循环的格式是如下

emp my_cursor%rowtype

 for emp in my_cursor loop dbms_output.put_line(emp.a);

end loop;

fetch 用法格式如下

loop

fetch my_cursor into emp;

exit when emp%notfound;

dbms_output.put_line(emp.a);

end loop;

两者对比for循环应该是更简单一些,当然还有其他用法,这里就不一一介绍,基本这两种就够用了。















相关内容

热门资讯

女子身份证丢失后名下出现“吸毒... 四川籍的庞女士定居浙江宁波多年,她怎么也没想到,因丢失身份证一事,竟让她陷入长达7年“自证清白”的困...
省农科院成功研发我省首个高粱全... 近日,记者从省农科院获悉,该院作物资源研究所、农业生物技术研究所联合石家庄博瑞迪生物,成功研制出省内...
消息称AMD与Anthropi... IT之家 7 月 22 日消息,据华尔街日报消息,AMD 与 Anthropic 达成了一项价值数百...
独家!苹果iPhone18系列... 7月22日,中国证券报记者从产业链人士处独家获悉,进入7月,苹果iPhone 18系列手机已在量产,...
29岁的党鑫蕊倒在广西泥泞山路... 7月11日晚一通叮嘱,成了父子最后的对话;几天后父亲在殡仪馆见到一身泥的儿子,才知道“他走得有多难。...
时隔一年,英国国防大臣斯特里廷... 一年前,当时还是英国卫生大臣的韦斯·斯特里廷(Wes Streeting)曾公开指责以色列犯下战争罪...
微软与Mistral宣布扩大战... 【CNMO科技消息】7月22日,据韩媒报道,微软与法国AI企业Mistral正式宣布大幅扩大双方战略...
东方空间引力一号(遥四)运载火... 本报讯 (记者袁传玺)北京时间7月22日10时54分,东方空间引力一号(遥四)·星联体号运载火箭在我...
“你的手上沾满鲜血”,美防长出... 当地时间21日,美国国防部长赫格塞思在出席国会参议院听证会时表示,根据最新估算,美国对伊朗战事的花费...
Kimi K3让美国羡慕又不甘... 北京时间7月17日凌晨,月之暗面公司发布开源大模型Kimi K3。据报道,该模型总参数规模达2.8万...