存储过程中的存储对象持久性.

dongdonghe1 2004-10-20 03:57:53
小弟有一个问题,希望大家能够帮解决一下。
Java调用一个过程,如果调用该过程时出现exception,我将exception存储到一个索引table中,并返回给Java一个状态位-1,Java得到-1以后,再得到存储在索引table中的错误信息。我如何能够让Java得到索引table中的错误信息呢?或者如何能将索引table里的数据持久存储呢?
...全文
134 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongdonghe1 2004-10-20
  • 打赏
  • 举报
回复
客户不让建临时表阿。真没有办法了吗?
bzszp 2004-10-20
  • 打赏
  • 举报
回复
使用临时表吧。
dongdonghe1 2004-10-20
  • 打赏
  • 举报
回复
明白两位的意思,但索引table只是存储在内存中,无法检索;同时我用的Java框架是Struts,不是hibernate。
yujiabian 2004-10-20
  • 打赏
  • 举报
回复
应该能实现吧,用hibernate实现对数据库对象的持久化,获取持久化数据对象,每次操作该数据对象应该可以吧
bzszp 2004-10-20
  • 打赏
  • 举报
回复
应该不可以,你可以写一段代码,如果返回代码是-1,就检索那个表
bzszp 2004-10-20
  • 打赏
  • 举报
回复
应该是不行的,除非你写一段代码,检索那个表中的信息。
dongdonghe1 2004-10-20
  • 打赏
  • 举报
回复
然后添加到log类中:
throw new DBException(JuchuuTorikomiDBInvokeRule.RULE_ID + "(位置" + errorPosition + ")编号[" + errorNumber     + "]描述 :"+ errorDescription);

catch (Exception e) {
log.addMessage(Logger.SYSTEM_ERROR, e);
}
dongdonghe1 2004-10-20
  • 打赏
  • 举报
回复
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();
dongdonghe1 2004-10-20
  • 打赏
  • 举报
回复
在一个主过程中,调用几个子过程,将每个子过程的exception信息存储在索引table中,这样在一个子过程发生异常时,就不会影响其它的子过程。再把这些异常信息返回给Java。
bzszp 2004-10-20
  • 打赏
  • 举报
回复
不是很明白你的意思

存储过程直接返回sqlcode sqlerrm不行么?

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧