Java调用Oracle存储过程

    xiaoxiao2024-12-12  12

    Connection conn = null; Statement stat; try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); // 与url指定的数据源建立连接 conn = DriverManager.getConnection(dbUrl, theUser, thePw); // 采用Statement进行查询 stat = conn.createStatement(); } catch (Exception e) { e.printStackTrace(); } CallableStatement proc = null; String startAge = "" + new Double(record[1]).intValue(); String reparationRate = record[4]; String sunIns = "" + new Double(record[5]).intValue(); proc = conn.prepareCall("{call 包名.存储过程名字(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) }"); // 险种 proc.setString(1, prodCode); // 版次 proc.setString(2, "1"); // 计划别总人数 proc.setString(3, null); // 投保计划别平均年龄 proc.setString(4, null); // 性别 proc.setString(5, "F"); // 社保类型 proc.setString(6, record[3]); // 保额 proc.setString(7, sunIns); // 公用保额,和保额相等 proc.setString(8, null); // 免赔额 proc.setString(9, null); // 赔付比例 proc.setString(10, reparationRate); // 年龄 proc.setString(11, startAge); // 销售区域 if ("SH".equals(record[0])) { proc.setString(12, "0601"); } else if ("GD".equals(record[0])) { proc.setString(12, "6001"); } else if ("SZ".equals(record[0])) { proc.setString(12, "6002"); } else if ("JS".equals(record[0])) { proc.setString(12, "1501"); } // 女性比例 proc.setString(13, "0"); // 日限额 proc.setString(14, null); // 成本费用 proc.setString(15, costRate); // 保费 proc.registerOutParameter(16, Types.DOUBLE); proc.execute(); double fee = proc.getDouble(16); DecimalFormat decimalFormat = new DecimalFormat("####.######"); String stringFee = decimalFormat.format(fee); proc.close(); if (stat != null) { stat.close(); } if (conn != null) { conn.close(); }

     

    最新回复(0)