关于JDBC的菜鸟问题,高手接分

zhaowanlun 2004-07-19 09:38:25

我碰到了这个问题,求高手帮助
下面是我写的一段代码,在每隔一段时间重复执行一次。
try{

…………
…………


sSql="INSERT INTO tad_taskexecinfo"+
" (task_id,cmdline,status,start_time)";

sSql += " VALUES("+mTaskExecRec.iTaskId+",?,"+mTaskExecRec.iStatus+
",'"+mTaskExecRec.sStartTime+"')";
psExecInfoStmt = mCon.prepareStatement(sSql);
psExecInfoStmt.setString(1,sCmdLine);
psExecInfoStmt.executeUpdate();
alTaskExecList.remove(i);//从列表中删除成功的语句
Scheduler.log.write("DBProxy::writeTaskExecInfo insert sql:"+sSql+" success\n");
Scheduler.log.write("cmdline:"+sCmdLine+"\n");


}catch(Exception e){
Scheduler.log.write("DBProxy::writeTaskExecInfo failed,Sql:"+sSql+e+"\n");
Scheduler.log.write("cmdline:"+sCmdLine+"\n");
e.printStackTrace();
blReconnectDB = true;
try{
tDb.sleep(3000);
}catch(InterruptedException err){
}
return -1;
}finally
{
if( psExecInfoStmt != null )
try{
psExecInfoStmt.close();
}catch(SQLException se)
{}

}



但在执行几次后, 会抛sql异常:

java.sql.SQLException: Bigger type length than Maximum
java.sql.SQLException: Refcursor value is invalid

这个异常以前没见过,是由什么引起的呢,我的代码有误吗?
为什么开始几次能够执行成功呢(insert的内容都是相同的)



另外, java.sql.SQLException: ORA-01000: maximum open cursors exceeded
是怎么回事,我在finally中不是已经将statement close掉了吗。难道是我没有正确
的释放资源吗?
...全文
147 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
noscar 2004-07-23
  • 打赏
  • 举报
回复
把表的 字段 设大一些就行了......
zhang21cnboy 2004-07-19
  • 打赏
  • 举报
回复
:),是不是你那个scmdline跟着循环,在一直加长阿????

mousexian 2004-07-19
  • 打赏
  • 举报
回复
你数据库字段设计有问题吧??先查查看,先把“java.sql.SQLException: Bigger type length than Maximum”改掉。
zhaowanlun 2004-07-19
  • 打赏
  • 举报
回复
我的sql语句在sqlplus可以重复执行多次,所以SQL语句和表结构应该不会有问题
请各位高手再给看看,谢谢了!
ll42002 2004-07-19
  • 打赏
  • 举报
回复
插入值的长度大于表中字段长度。
tangyongtgyg 2004-07-19
  • 打赏
  • 举报
回复
你看看你的SQL语句和表结构有什么错误吗?
江南愚子 2004-07-19
  • 打赏
  • 举报
回复
插入了一条长度大于字段长度的记录
wxhacker 2004-07-19
  • 打赏
  • 举报
回复
表结构的问题,不能重复插入相同的行
zhaowanlun 2004-07-19
  • 打赏
  • 举报
回复
有人这样建议我:

首先,你应该调整Oracle的参数,增加支持cursor的数量。
至于你提及的异常,是oracle thin driver的问题,你试试用新的oracle提供的driver或者改用oci(需要安装oracle客户端)协议。

不知各位高人有什么想法,请各位谈一谈。
另外, 怎么调整Oracle的参数,增加支持cursor的数量呢, 如何下载新的oracle thin driver??

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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