存储过程中的存储对象持久性. 不是很明白你的意思存储过程直接返回sqlcode sqlerrm不行么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在一个主过程中,调用几个子过程,将每个子过程的exception信息存储在索引table中,这样在一个子过程发生异常时,就不会影响其它的子过程。再把这些异常信息返回给Java。 Java代码如下:CallableStatement cstmt = dao.getCallableStatement("{call package名}");cstmt.registerOutParameter(1, java.sql.Types.INTEGER);cstmt.execute();int retStatus = cstmt.getInt(1);cstmt.close(); :if (retStatus == -1) { cstmt = dao.getCallableStatement("{call package名.GET_ERROR_NUMBER(?)}"); cstmt.registerOutParameter(1, java.sql.Types.INTEGER); cstmt.execute(); errorNumber = cstmt.getInt(1); cstmt.close(); cstmt = dao.getCallableStatement("{call package名.GET_ERROR_POSITION(?)}"); cstmt.registerOutParameter(1, java.sql.Types.INTEGER); cstmt.execute(); errorPosition = cstmt.getInt(1); cstmt.close(); cstmt = dao.getCallableStatement("{call package名.GET_ERROR_DESCRIPTION(?)}"); cstmt.registerOutParameter(1, java.sql.Types.VARCHAR); cstmt.execute(); errorDescription = cstmt.getString(1); cstmt.close(); 然后添加到log类中:throw new DBException(JuchuuTorikomiDBInvokeRule.RULE_ID + "(位置" + errorPosition + ")编号[" + errorNumber + "]描述 :"+ errorDescription); :catch (Exception e) {log.addMessage(Logger.SYSTEM_ERROR, e); } 应该能实现吧,用hibernate实现对数据库对象的持久化,获取持久化数据对象,每次操作该数据对象应该可以吧 明白两位的意思,但索引table只是存储在内存中,无法检索;同时我用的Java框架是Struts,不是hibernate。 关于V$DB_CACHE_ADVICE 视图含义的问题 oracle 10g? 查询结果的某字段合并——急等大牛来助! 问一个关于like的问题 多条sql语句一起执行问题(在线等) oracle里blob类型和clob类型迷惑 system和sys密码 这是什么错误阿?各位 关于解决丢失更新的请教。 PL/SQL中的转意问题 100分求一个复杂的sql语句 在线等......... form开发问题
CallableStatement cstmt = dao.getCallableStatement("{call package名}");
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.execute();
int retStatus = cstmt.getInt(1);
cstmt.close(); :
if (retStatus == -1) { cstmt = dao.getCallableStatement("{call package名.GET_ERROR_NUMBER(?)}");
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.execute();
errorNumber = cstmt.getInt(1);
cstmt.close();
cstmt = dao.getCallableStatement("{call package名.GET_ERROR_POSITION(?)}");
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.execute();
errorPosition = cstmt.getInt(1);
cstmt.close();
cstmt = dao.getCallableStatement("{call package名.GET_ERROR_DESCRIPTION(?)}");
cstmt.registerOutParameter(1, java.sql.Types.VARCHAR);
cstmt.execute();
errorDescription = cstmt.getString(1);
cstmt.close();
throw new DBException(JuchuuTorikomiDBInvokeRule.RULE_ID + "(位置" + errorPosition + ")编号[" + errorNumber + "]描述 :"+ errorDescription);
:
catch (Exception e) {
log.addMessage(Logger.SYSTEM_ERROR, e);
}