Oracle调用存储过程返回游标结果

/**

调用Oracle存储过程

*/

public ResultSet queryForAllJSD_NEWEST(final String hpCode, final String id) {

System.out.println("hpCode:"+hpCode+",id:"+id);
ResultSet rs = (ResultSet)this.jdbctemplate.execute("{call pro_querybcb_newest(? , ? ,?)}" , new CallableStatementCallback(){
public Object doInCallableStatement(CallableStatement cs)
throws SQLException, DataAccessException {
cs.setString(1, hpCode) ;
cs.setString(2, id) ;
cs.registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
return cs.getObject(3);
}
});
return rs;
}

/**

处理返回结果

*/

ResultSet rs = dao1.queryForAllJSD_NEWEST(hpCode, id);

try {
  if (rs.next()) {
  ResultSetMetaData rsmd = rs.getMetaData();
  int i = rsmd.getColumnCount();
  System.out.println("i=" + i);
  for (int j = 1; j <= i; j++) {
    map.put(rsmd.getColumnName(j),rs.getString(j) == null ? "" : rs.getString(j));
    }
    }
  } finally {
  if (rs != null) {
    try {
      rs.close();
      } catch (SQLException e) {
  }
}

map.put("name", md.get("A4"));
map.put("idno", md.get("A7"));
map.put("Indate", md.get("A16"));
map.put("outdate", md.get("A17"));
map.put("hosno", md.get("A15"));
map.put("sick", md.get("A24"));

原文地址:https://www.cnblogs.com/fkeyta/p/12129219.html

时间: 2024-10-08 07:15:35

Oracle调用存储过程返回游标结果的相关文章

mybatis 调用存储过程 返回游标 实例

存储过程示例: create or replace procedure Fsp_Plan_CheckPrj(v_grantno varchar2, v_deptcode number, v_cursor out sys_refcursor) is ……………… ---返回统计结果 open v_Cursor for select s.plan_code, s.plan_dept, s.plan_amount, s.exec_amount, p.cname as plan_name, d.cnam

ibatis.net调用oracle存储过返回游标SYS_REFCURSOR结果集

最近在用ibatis.net框架和oracle 11g开发一套程序.其中有一个需求就是通过存储过程,查询指定条件的数据集. 但是在开发的过程中遇到了问题,问题如下: 1.如何通过ibatis.net执行存储过程? 2.通过ibatis.net执行存储过程时,如何传参数? 3.通过ibatis.net执行存储过程时,传递参数过程中,dbType和type是如何对应的? 4.oracle存储过程中返回的游标集合SYS_REFCURSOR对应dbType是什么? 5.通过ibatis.net执行存储过

Oracle使用存储过程返回查询游标

如果报表逻辑非常复杂的话, 可以把报表逻辑放到存储过程里,加工一个全局临时表.前端查询的时候只查询临时表即可.只是第一次查询需要忍受加工的时间. --创建存储过程,返回SYS_REFCURSOR CREATE OR REPLACE PROCEDURE P_GET_AGENT(V_AGENT_CATE IN VARCHAR2, V_PAGE IN INTEGER, O_CURSOR OUT SYS_REFCURSOR) IS BEGIN INSERT INTO TMP_TAB_T_AGENT(AG

ibatis调存储过程返回游标

http://blog.sina.com.cn/s/blog_6f3ca78f01010pmj.html iBatic调用与JAVA调用很类似,只是JAVA把参数的注册放到了类里面,而iBatis把参数的注册放到了XML配置文件里,下面两个例子,第一个是返回普通数据,第二个是返回游标. 1:返回普通数据 Map map = new HashMap(); map.put("username", "JACK"); sqlMapClient.queryForObject(

Java调用存储过程返回数组

Java调用存储过程: 结合SQL操作与存储过程 create procedure set_death_age(poet VARCHAR2, poet_age NUMBER) poet_id NUMBER; begin SELECT id INTO poet_id FROM poets WHERE name = poet; INSERT INTO deaths (mort_id, age) VALUES (poet_id, poet_age); end set_death_age; 下面是调用上

Oracle(三)存储过程与游标

1.程序包头 1 create or replace package pck_demo --声明一个程序包头,注意:包头与包体的名称一样 2 as -- 语法 3 4 type mycursoris ref cursor;-- 声明一个(引用)游标类型 5 -- 第一个存储过程,查询所有的角色(根据关键字),需要先执行一个存储过程完成后,在去添加新的存储过程 6 procedure get_all_role( 7 cname in varchar2,-- 输入参数 8 vresult out m

Oracle基础 存储过程和游标

一.带游标的存储过程 游标作为参数有两种类型: 1.声明系统游标类型 SYS_REFCURSOR 1)游标作为存储过程的参数: --带游标的存储过程 CREATE OR REPLACE PROCEDURE PRO_EMP_IN(EMP_CUR SYS_REFCURSOR) AS V_NAME EMP.ENAME%TYPE; V_SAL EMP.SAL%TYPE; BEGIN LOOP FETCH EMP_CUR INTO V_NAME, V_SAL; DBMS_OUTPUT.PUT_LINE('

springmvc+mybatis 调用oacle 存储过程返回游标!

oracle存储过程如下: HB_SAVE_MSG.P_QUERY_QUESTION_OF_QTA PROCEDURE P_QUERY_QUESTION_OF_QTA ( v_PaperID IN NUMBER, v_myCursor out MYCURSOR, v_optCursor out MYCURSOR ) IS BEGIN OPEN v_myCursor FOR SELECT A.QUESTION_ID,A.CONTENT,A.QTYPE_ID FROM T_QUESTION A IN

java读取ORACLE 存储过程 返回游标(cursor) 格式 读取到List中

/**  * 执行存储过程(目前只支持返回一个游标) never null  *   * @param sql  *            执行的语句  * @param index  *            当前游标的下标  * @param obj  *            参数(用来替换sql语句中的?)  * @param rop  *            注册oracle的输出参数(注意,这里假如下标为1的是输入参数,为2的输出参数  *            则游标要以输出参数