insert into select 插入不进去数据怎么回事?急!!!

MJaney 2013-05-28 04:43:37
代码如下:
//大量数据的插入需要分批执行
while(!statistics_start.equals(init_date_from)){
String statistics_end=DateTool.getTimeStringDayPlus(statistics_start, +1);
sql="insert into tb_request_month_temp (requesttime,username,devnumber,modulename,devtype,version)
(select requesttime,username,devnumber,modulename,devtype,version
from v_request where REQUESTTIME >= to_date(?,'yyyy-MM-dd HH24:mi:ss') AND REQUESTTIME < to_date(?,'yyyy-MM-dd HH24:mi:ss'))";

PreparedStatement pstate=connDB.prepareStatement(sql);
try {
pstate.setString(1, statistics_start);
pstate.setString(2, statistics_end);
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(sql);
_log.info(sql);
try {
flag=pstate.executeUpdate();

} catch (SQLException e) {
e.printStackTrace();
}
if(flag==-1)return false;
statistics_start=DateTool.getTimeStringDayPlus(statistics_start, +1);

}

执行这段代码,数据库没有数据,在数据库里执行打印出来的sql语句有数据,
有哪位高手能看出代码里的问题呢?为什么程序不能插入数据呢?
...全文
867 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
MJaney 2013-05-29
  • 打赏
  • 举报
回复
奇怪了,怎么插就是插入不到数据库里
MJaney 2013-05-29
  • 打赏
  • 举报
回复

flag打印的结果有7,19,225,0......flag也有值,但就是插入不到数据库里是怎么回事呢?
杰杰26 2013-05-28
  • 打赏
  • 举报
回复
flag 打印出来看看
MJaney 2013-05-28
  • 打赏
  • 举报
回复
connDB.commit(); 还是不行,还是没有数据
MJaney 2013-05-28
  • 打赏
  • 举报
回复
我连的是客户端的数据库,不能查看数据库是否有锁,不过我可以确定的是,执行完程序后,数据库里仍然没有数据,但是在pL/sql里执行程序中打印出的语句,仍然可以插入进去,说明数据库里没有锁。。。。
菖蒲老先生 2013-05-28
  • 打赏
  • 举报
回复
你先flag=pstate.executeUpdate();的下面加一句试试。。。 connDB.commit();
MJaney 2013-05-28
  • 打赏
  • 举报
回复
这是直接调用PreparedStatement()方法里的,在那个方法里就已经commit了,代码有问题吗?
MaryL2 2013-05-28
  • 打赏
  • 举报
回复
如果打印出来是执行成功的结果,你看下是否表被锁了(for update),我曾经也遇到过这个问题
菖蒲老先生 2013-05-28
  • 打赏
  • 举报
回复
connDB.commit(); 执行完sql没有commit吧。。。

67,513

社区成员

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

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