批量操作中如何使用绑定变量(急等!)

houxp666 2006-08-22 11:54:06
因为无法忍受Statement在多用户并发下引发的严重latch free等待事件,决定用PreparedStatement代替它,单条操作好写,但是,下边的情况,怎么办呢?
一个事务有多个操作,比方说:
先插入表A一条数据,接着更新表B的一个字段,最后,在表C里写一条记录。
这种情况下,如何做呢?
谢谢!
...全文
327 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
houxp666 2006-09-01
  • 打赏
  • 举报
回复
不好意思,是我描述不清楚,我的意思是在一个代码段里包含多个操作(就是一次SQL调用完成多个操作,是一个事务),这在java里用PreparedStatement怎么写;
问题已经解决了,是多次用PreparedStatement。很久没有上了,没有看到大家的帖子;
谢谢sozdream(),你是对的,虽然我没有看到你的帖子,还是谢谢你,谢谢大家帮忙!
龙翔飞雪 2006-08-23
  • 打赏
  • 举报
回复
估计楼主用JAVA吧~

那也没问题啊,
一个PreparedStatement 对应一个insert, 操作完后,
再new一个PreparedStatement, 对应下一个insert, 操作完后, 再new.....

最后finally{}里关闭全部的PreparedStatement和connection.
vivianfdlpw 2006-08-22
  • 打赏
  • 举报
回复
表述不清,另外表名不能做绑定变量
yqwd911 2006-08-22
  • 打赏
  • 举报
回复
楼主说个例子,这样比较好理解
wiler 2006-08-22
  • 打赏
  • 举报
回复
好象描述得不大明白
bierbin 2006-08-22
  • 打赏
  • 举报
回复
是问题太深奥,还是说的不明白?
先插入表A一条数据,接着更新表B的一个字段,最后,在表C里写一条记录——
insert into a .....
update b set xx = ……
insert into c .....
之间有什么冲突的么?


对于更新值得操作我以前做的对动态的表、列进行更新操作,每次更新的值自然是要变化的、被绑定的变量1;主键字段对应的值也是动态变化的、也需要绑定。

sql_str := ('update '||v_tblname||' t set '||v_colnum||' = (:1) where t.主键 = (:2)');

execute immediate sql_str using v_number,v_time;

17,086

社区成员

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

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