java oracle 存储过程(有返回值)返回列表--》学习二(转载+修改)
来源:互联网 发布:北京网络职业学院 编辑:程序博客网 时间:2024/06/05 03:17
由于oracle存储过程没有返回值,它的所有返回值都是通过out参数来替代的,列表同样也不例外,但由于是集合,所以不能用一般的参数,必须要用pagkage了.所以要分两部分,
1, 建一个程序包。如下:
CREATE OR REPLACE PACKAGE TESTPACKAGE ASTYPE Test_CURSOR IS REF CURSOR;
end TESTPACKAGE;
2,建立存储过程,存储过程为:
CREATE OR REPLACE PROCEDURE TESTC(p_CURSOR out TESTPACKAGE.Test_CURSOR) ISBEGIN
OPEN p_CURSOR FOR SELECT * FROM TESTTB;
END TESTC;
可以看到,它是把游标(可以理解为一个指针),作为一个out 参数来返回值的。
接下来新建一个类
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestProcedureTHREE {
public TestProcedureTHREE() {
}
public static void main(String[] args ){
String driver = "oracle.jdbc.driver.OracleDriver";
String strUrl = "jdbc:oracle:thin:@192.168.0.200:1521:orcl";
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(strUrl, "hn628", "123456");
CallableStatement proc = null;
proc = conn.prepareCall("{ call testc(?) }");
proc.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);
proc.execute();
rs = (ResultSet)proc.getObject(1);
while(rs.next())
{
System.out.println("<tr><td>" + rs.getString(1) + "</td><td>"+rs.getString(2)+"</td></tr>");
}
}
catch (SQLException ex2) {
ex2.printStackTrace();
}
catch (Exception ex2) {
ex2.printStackTrace();
}
finally{
try {
if(rs != null){
rs.close();
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}
catch (SQLException ex1) {
}
}
}
}
- java oracle 存储过程(有返回值)返回列表--》学习二(转载+修改)
- java 调用 oracle存储过程返回列表
- pl/sql 有返回值的存储过程(二)
- oracle 存储过程返回列表
- java调用有返回值的oracle存储过程
- Java调用存储过程(有返回值)
- oracle存储过程学习(二)-调用存储过程和返回结果集
- Oracle有返回值的存储过程
- oracle学习笔记2之有返回列表的存储过程
- Java调用Oracle存储过程(无返回值)
- java调用存储过程(有返回值)
- java oralce 存储过程无返回值(学习一)
- java调用ORACLE 存储过程返回值
- ADO.NET测试(二) --测试有返回值的存储过程
- java调用存储过程(返回列表)
- oracle存储过程返回值
- jpa 调用oracle 存储过程 无返回值 ,有返回值。
- java调用Oracle存储过程返回Cursor
- 在.net(C#)中查找本地及局域网内所有sql server实例
- LINUX系统延时函数
- Struts2初级教程05 配置详解
- 获得手机内的视频信息集合
- FDAT设计滤波器方法
- java oracle 存储过程(有返回值)返回列表--》学习二(转载+修改)
- 关于Android短信拦截(三)
- 关于socket长连接的心跳包
- 解压cpio.gz文件
- 关于Tslib编译可能遇到的问题总结
- 20120725-51单片机IO口模拟串口通讯3-中断法
- 坦白错误
- SliverLight程序发布注意事项
- 昵称