我没有这样做,
ARRAY但应该可以。首先,您必须注册
out函数的参数。这样就可以这样。
private final String PRODECURE_NAME = "{? = call <ProcedureName>(?,?,?)}";Connection con = null;CallableStatement cs = null; try { con = DAOFactory.getDatabaseConnection(); cs = con.prepareCall(PRODECURE_NAME); cs.registerOutParameter(1, java.sql.Types.ARRAY); cs.setYourType(2, <yourData>); cs.setYourType(3, <yourData>); cs.setYourType(4, <yourData>); cs.execute(); Array arr = cs.getArray(1); if (arr != null) { String[] data = (String[]) arr.getArray(); } } catch (SQLException ex) { Logger.getLogger(OracleLiekDAO.class.getName()).log(Level.SEVERE, null, ex); try { con.rollback(); } } finally { if (con != null) { try { con.close(); } catch (SQLException ex) { Logger.getLogger(OracleLiekDAO.class.getName()).log(Level.SEVERE, null, ex); } } }试试这个男人,然后给我,问是否做。
编辑:
这些字符 ? 表示您要设置的一个参数(称为参数化)。所以这:
cs.setYourType(2, <yourData>);cs.setYourType(3, <yourData>);cs.setYourType(4, <yourData>);
表示您设置了三个参数(?),方法的第一个参数是列索引,第二个是您特定类型的数据。
编辑2:
很抱歉我写了不好的解决方案,已经更新了,所以现在检查代码并尝试一下。



