当前位置: 技术问答>java相关
关键字: oracle,存储过程,数据库,查询,动态sql包,数组,参传,jdbc 1
来源: 互联网 发布时间:2015-11-04
本文导语: 想用oracle的存储过程在数据库中查询数据(用oracle的动态sql包). 查询的结果以oracle的数组形式作为存储过程的出参传给java, java用jdbc调用该oracle的存储过程,用java的数组接收oracle的数组的数据, java的数组的数据在传给JSP...
想用oracle的存储过程在数据库中查询数据(用oracle的动态sql包).
查询的结果以oracle的数组形式作为存储过程的出参传给java,
java用jdbc调用该oracle的存储过程,用java的数组接收oracle的数组的数据,
java的数组的数据在传给JSP显示.
这种方法在技术上是否可行?
如果可行,请赐教.
查询的结果以oracle的数组形式作为存储过程的出参传给java,
java用jdbc调用该oracle的存储过程,用java的数组接收oracle的数组的数据,
java的数组的数据在传给JSP显示.
这种方法在技术上是否可行?
如果可行,请赐教.
|
//准备SQL语句
strSQL = "{call sp_jsptest(?,?)}";
//准备可调用语句对象
sqlStmt = sqlCon.prepareCall(strSQL);
//设置输入参数
sqlStmt.setString(1,strName);
//登记输出参数
sqlStmt.registerOutParameter(2,java.sql.Types.Array);
//执行该存储过程并返回结果集
sqlRst = sqlStmt.executeQuery();
//获取来自结果集中的数据
sqlRst.next();
strWelcome = sqlRst.getString(1);
//获取输出参数的值
java.sql.Array strMyName = sqlStmt.getString(2);
strSQL = "{call sp_jsptest(?,?)}";
//准备可调用语句对象
sqlStmt = sqlCon.prepareCall(strSQL);
//设置输入参数
sqlStmt.setString(1,strName);
//登记输出参数
sqlStmt.registerOutParameter(2,java.sql.Types.Array);
//执行该存储过程并返回结果集
sqlRst = sqlStmt.executeQuery();
//获取来自结果集中的数据
sqlRst.next();
strWelcome = sqlRst.getString(1);
//获取输出参数的值
java.sql.Array strMyName = sqlStmt.getString(2);
|
好像不可以,为什么不尝试用结果集返回呢
//准备SQL语句
strSQL = "{call sp_jsptest(?,?)}";
//准备可调用语句对象
sqlStmt = sqlCon.prepareCall(strSQL);
//设置输入参数
sqlStmt.setString(1,strName);
//登记输出参数
sqlStmt.registerOutParameter(2,java.sql.Types.Array);
//执行该存储过程并返回结果集
sqlRst = sqlStmt.executeQuery();
//获取来自结果集中的数据
sqlRst.next();
strWelcome = sqlRst.getString(1);
//获取输出参数的值
java.sql.Array strMyName = sqlStmt.getString(2);
//准备SQL语句
strSQL = "{call sp_jsptest(?,?)}";
//准备可调用语句对象
sqlStmt = sqlCon.prepareCall(strSQL);
//设置输入参数
sqlStmt.setString(1,strName);
//登记输出参数
sqlStmt.registerOutParameter(2,java.sql.Types.Array);
//执行该存储过程并返回结果集
sqlRst = sqlStmt.executeQuery();
//获取来自结果集中的数据
sqlRst.next();
strWelcome = sqlRst.getString(1);
//获取输出参数的值
java.sql.Array strMyName = sqlStmt.getString(2);