欢迎来到天天文库
浏览记录
ID:34753496
大小:61.18 KB
页数:5页
时间:2019-03-10
《在java中游标的用法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一.只有输入参数没有返回结果的存储过程二.有输入和有一个返回值的存储过程三、返回多行记录的存储过程(返回的是游标)四、Hibernate调用oracle存储过程 一.只有输入参数没有返回结果的存储过程建表createtabletable_1(idvarchar2(10),namevarchar2(10)); --没有返回值的存储过程createorreplaceprocedureprc_1(t_idinvarchar2,t_nameinvarchar2)as begin insertintotable_1values(t_id,t_name);endprc_1; 1.在sqlplus中
2、执行SQL>execprc_1('1','杨2');PL/SQLproceduresuccessfullycompleted2.在java中执行,返回结果 Class.forName("oracle.jdbc.OracleDriver").newInstance(); Stringurl="jdbc:oracle:thin:atf_ygj/mas123@192.168.6.19:1531:orcl"; Stringuser="atf_ygj"; Stringpassword="mas123"; conn=DriverManager.getConnection
3、(url,user,password); conn.setAutoCommit(false); cstmt=conn.prepareCall("{callprc_1(?,?)}"); cstmt.setString(1,"100"); cstmt.setString(2,"TestOne"); cstmt.execute(); conn.commit(); ========================================二.有输入和有一个返回值的存储过程--有一个返回值的存储过程createorreplaceprocedureprc_2
4、(t_idINVARCHAR2,t_nameOUTVARCHAR2) ASbegin SELECTnameINTOt_nameFROMtable_1WHEREid=t_idandrownum<2;endprc_2;1.在sqlplus中执行,返回结果SQL>varnamevarchar2(100);SQL>execprc_2('1',:name);PL/SQLproceduresuccessfullycompletedname---------杨22.在java中执行,返回结果 Class.forName("oracle.jdbc.OracleDriver").newInstance(
5、); Stringurl="jdbc:oracle:thin:atf_ygj/mas123@192.168.6.19:1531:orcl"; Stringuser="atf_ygj"; Stringpassword="mas123"; conn=DriverManager.getConnection(url,user,password); conn.setAutoCommit(false); cstmt=conn.prepareCall("{callprc_2(?,?)}"); cstmt.setString(1,"1"); cstmt.registerOutParameter(2,Ty
6、pes.VARCHAR); cstmt.execute(); conn.commit(); StringtestPrint=cstmt.getString(2); System.out.println("返回值::::::"+testPrint);输出:返回值::::::杨2 三、返回多行记录的存储过程(返回的是游标) 由于oracle存储过程没有返回值,它的所有返回值都是通过out参数来替代的,列表同样也不例外,但由于是集合,所以不能用一般的参数,必须要用pagkage了.所以要分两部分,1, 建一个程序包。createorreplacepackagetest_packageas ty
7、petest_CURSORisrefcursor;endtest_package;2,建立存储过程,存储过程为:createorreplaceprocedureprc_3(p_CURSORouttest_package.test_CURSOR)isbegin OPENp_CURSORFORSELECT*FROMtable_1orderbyid;endprc_3;可以看到,它是把游标(可以理解为一个指针),作为一个out参数来返回
此文档下载收益归作者所有