已orcale 语句在 pl/plus 中执行没问题,但写在 java代码中 就没反映了??

systemInput 2005-05-16 04:15:15
String SQL = "select TB.A from TB WHERE to_date(TB.B,'YYYY,MM,DD')<(SELECT SYSDATE FROM DUAL)"
db.execUpdate(SQL); // db 是数据库操作类的 一个实例

问题:当执行
db.execUpdate(SQL); 时 后台就停住了,也没有错误。就是没反应。

服务器是:weblogic 注:那句sql 在 PL/PLUS 中执行没有语法错误。


请问是这么回事??

谢谢!
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pangenle 2005-05-18
  • 打赏
  • 举报
回复
SUN无能!却抓住JAVA不放!如果JAVA让IBM统领!我想一定会开发出一个比.NET平台好很多的集成平台!
pangenle 2005-05-18
  • 打赏
  • 举报
回复
原因是JAVA是内嵌型SQL的!JDBC支持SQL 92标准!不支持SQL 99标准!而ORACLE 8或9支持SQL 99标准!所以在SQL *PLUS中能执行的末必放在EXECUTEQUERY方法中能执行!唯一解决方法是向下支持!就是你写SQL语句必须是SQL 92标准那么在JAVA里或在SQL *PLUS中都能执行而且执行结果是一样的!
systemInput 2005-05-18
  • 打赏
  • 举报
回复
systemInput 2005-05-18
  • 打赏
  • 举报
回复
现在是这样:开发过程中大家都用同一个数据库服务器上的同一个数据库。我装了一个oracle client 9i的, 数据服务器装得是 8i ,我的机子上装了个pl/sql devaloper 连接到那个数据库上用来调试程序中出错的sql语句,有时候我在pl/sql中执行update语句出错后 ,当java程序执行到对表进行update操作时就出现 上述的那种现象,我觉得时数据库将表错定,只能对该表进行select 操作。然后我重启服务器上的oracle 服务后就一切正常了。

问题:谁能更我说说 如何解释这个问题 和 如何解决他。我总不能平凡的去重启数据库吧。

等待中……
rabbitbug 2005-05-16
  • 打赏
  • 举报
回复
db.executeQuery(sql)---用于查询语句,select
db.executeUpdate(sql)---用于修改删除数据库,如delete,update

另外,如果你的connection设置了con.setAutoCommit(false)
那你在executeUpdate后,要执行con.commit();
systemInput 2005-05-16
  • 打赏
  • 举报
回复
update BASE_SW_INFO
set SW_USED_USER_QTY = SW_USED_USER_QTY+(select sum(ssw_user_qty) from sub_sw_info where ssw_base_sw_id = 'S000000325' and ssw_IS_AVA='1')
where SW_BASE_SW_ID='S000000325'

这句话 同样是这样的问题 在 pl/sql 中执行没有问题,但写到程序中就 没反应了。
systemInput 2005-05-16
  • 打赏
  • 举报
回复
有人能帮我么?
systemInput 2005-05-16
  • 打赏
  • 举报
回复
db 中的方法是自己写的。其作用就是执行update类型的sql 语句。这个没错的。
yxxx 2005-05-16
  • 打赏
  • 举报
回复
db.executeQuery(SQL);
应该这样吧

17,137

社区成员

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

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