您的位置:首页 > 数据库 > Oracle

Ms Sql 和 Oracle 调用返回多条记录的存储过程

2008-04-08 12:14 471 查看

package oracle;




import java.sql.Connection;


import java.sql.DriverManager;


import java.sql.CallableStatement;


import java.sql.ResultSet;


import com.microsoft.jdbc.sqlserver.SQLServerDriver;








public class InvokeProcedure ...{






private static Connection getConnection() ...{


Connection conn = null;


String url ="jdbc:oracle:thin:@127.0.0.1:1521:demo";




try ...{


Class.forName("oracle.jdbc.driver.OracleDriver");


conn = DriverManager.getConnection(url, "scott", "tiger");




} catch (Exception e) ...{


System.out.println("");


e.printStackTrace();


}


return conn;




}






private static Connection getsqlConnection() ...{


Connection conn = null;


String url ="jdbc:microsoft:sqlserver://localhost:1433;databaseName=y2";




try ...{


Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");


conn = DriverManager.getConnection(url, "sa", "");




} catch (Exception e) ...{


System.out.println("");


e.printStackTrace();


}


return conn;




}




//调用oracle的存储过程 ---> 查询数据得到游标




public static void invokeProcedureResutl()...{


Connection conn =null;


CallableStatement callableStatement =null;




try ...{


conn = getConnection();


//第一步:获得CallableStatemen的实例;


callableStatement = conn.prepareCall("{call p_result.pro_get_result(?,?,?,?)}");




//第二步:为输出参数注册数据类型,为输入参数赋值;


callableStatement.registerOutParameter(1,oracle.jdbc.driver.OracleTypes.CURSOR);


callableStatement.setString(2, "emp");


callableStatement.setInt(3, 2);


callableStatement.setInt(4, 4);


//第三步:执行存贮过程和获得返回值


callableStatement.execute();


ResultSet result =(ResultSet)callableStatement.getObject(1);




if (result!=null)...{




while(result.next())...{


//result.get


}


}


//System.out.println(result);






} catch (Exception e) ...{


e.printStackTrace();


}




}








public static void main(String[] args) ...{




//InvokeProcedure.getConnection();


InvokeProcedure.invokeProce();




}




//调用sqlserver的存储过程 --- 查询数据 select * from 表 where date > 2005.12.14




public static void invokeProce()...{


Connection conn =null;


CallableStatement callableStatement =null;




try ...{


conn = getsqlConnection();


//第一步:获得CallableStatemen的实例;


callableStatement = conn.prepareCall("{call pop_pro(?)}");




//第二步:为输出参数注册数据类型,为输入参数赋值;


callableStatement.setString(1, "2005.12.14");


//第三步:执行存贮过程和获得返回值


callableStatement.execute();


ResultSet result =callableStatement.getResultSet();




if (result!=null)...{




while(result.next())...{


//result.get


}


}


//System.out.println(result);






} catch (Exception e) ...{


e.printStackTrace();


}


}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: