jdbc中调用oracle 返回游标类型的存储过程
2010-04-25 16:20
676 查看
1、创建表:
create table stud(
sid int,
sname varchar2(50)
)
并插入一条数据
insert into stud values(1,'Tom')
2、通过包定义一个游标
create or replace package pack_stud
is
--声明一个游标类型
type cur is ref cursor;
end;
3、创建存储过程
create or replace procedure pro_select_stud(
my_cur out pack_stud.cur
)
is
begin
open my_cur for select * from stud;
end;
4、jdbc中调用
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import oracle.jdbc.driver.OracleTypes;
public class TestProCur {
public void test(){
Connection con = null;
ResultSet rs = null;
CallableStatement cst = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
//下面的tan是数据库名,默认是orcl,love是访问密码,默认是tiger,
//1521是端口号,默认是1521
con = DriverManager.getConnection ("jdbc:oracle:thin:@192.168.1.103:1521:tan","scott","love");
String sql = "{call pro_select_stud(?)}";
cst = con.prepareCall(sql);
cst.registerOutParameter(1, OracleTypes.CURSOR);
cst.execute();
rs = (ResultSet)cst.getObject(1);
while(rs.next()){
System.out.println(rs.getString(2));
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs !=null){
rs.close();
}
if(cst != null){
cst.close();
}
if(con != null){
con.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
public static void main(String[] args) {
TestProCur tpc = new TestProCur();
tpc.test();
}
}
create table stud(
sid int,
sname varchar2(50)
)
并插入一条数据
insert into stud values(1,'Tom')
2、通过包定义一个游标
create or replace package pack_stud
is
--声明一个游标类型
type cur is ref cursor;
end;
3、创建存储过程
create or replace procedure pro_select_stud(
my_cur out pack_stud.cur
)
is
begin
open my_cur for select * from stud;
end;
4、jdbc中调用
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import oracle.jdbc.driver.OracleTypes;
public class TestProCur {
public void test(){
Connection con = null;
ResultSet rs = null;
CallableStatement cst = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
//下面的tan是数据库名,默认是orcl,love是访问密码,默认是tiger,
//1521是端口号,默认是1521
con = DriverManager.getConnection ("jdbc:oracle:thin:@192.168.1.103:1521:tan","scott","love");
String sql = "{call pro_select_stud(?)}";
cst = con.prepareCall(sql);
cst.registerOutParameter(1, OracleTypes.CURSOR);
cst.execute();
rs = (ResultSet)cst.getObject(1);
while(rs.next()){
System.out.println(rs.getString(2));
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs !=null){
rs.close();
}
if(cst != null){
cst.close();
}
if(con != null){
con.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
public static void main(String[] args) {
TestProCur tpc = new TestProCur();
tpc.test();
}
}
相关文章推荐
- jdbc中调用oracle 返回游标类型的存储过程
- spring jdbctemplate或jdbc调用返回游标或复杂数据类型的存储过程
- spring jdbc调用oracle 存贮过程 返回游标类型的参数
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程
- java 调用oracle 分页存储过程 返回游标数据集
- JDBC 调用 oracle 存数过程 返回复合类型数据
- (转载)oracle 在一个存储过程中调用另一个返回游标的存储过程
- Oracle复合类型参数的存储过程以及JDBC调用
- C#执行oracle返回游标类型的存储过程
- oracle如何在一个存储过程中调用另一个返回游标的存储过程
- Oracle复合类型参数的存储过程以及JDBC调用
- oracle存储过程如何返回list,并用jdbc调用
- Java调用oracle存储过程通过游标返回临时表数据
- 当java调用oracle的存储过程时,存储过程的返回值类型不能为boolean
- Oracle 存储过程调用返回游标的另一个存储过程。
- oracle调用返回游标的存储过程
- C#执行oracle返回游标类型的存储过程
- oracle 在一个存储过程中调用另一个返回游标的存储过程
- oracle 在一个存储过程中调用另一个返回游标的存储过程
- Oracle复合类型参数的存储过程以及JDBC调用