关于存储过程游标insert into子查询结果丢失的疑问

qq_31832577 2015-10-10 11:43:19
insert into gdyc_country.druginfo
SELECT seq_druginfo.NextVal,
(select c.first_dosage_code || c.second_dosage_code from wjs.drug_code_mapping c where i.v_pid=c.drug_id),
(select c.first_spec_name from wjs.drug_code_mapping c where i.v_pid=c.drug_id)
FROM tb_drug_information i
where i.id = value_i_id;
----------------------------------
value_i_id是通过游标遍历出来的,现在是这个情况
通过游标把所有结果insert完后最后commit,会造成遍历6个结果,insert到表里结果只有4个,没任何报错。
如果每insert一次commit一次即无丢失情况。
不过把子查询去掉,写死值进行遍历,最后才commit却没有丢失情况,找了1天都不知道问题所在,所以上来请教各位。
...全文
210 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingkingzhu 2015-10-13
  • 打赏
  • 举报
回复
按你说的 问题可能出在子查询
这个问题应该比较好调试啊 一步步调啊
小灰狼W 2015-10-12
  • 打赏
  • 举报
回复
是不是有其中两个value_i_id,在 where i.id = value_i_id条件里匹配不到结果
尘世流年 2015-10-12
  • 打赏
  • 举报
回复
先直接打印出insert语句看看循环出来的结果
beyon2008 2015-10-12
  • 打赏
  • 举报
回复
有where条件没触发导致无记录插入的可能,你可以加一个一定会触发的测试动作看看结果
卖水果的net 2015-10-11
  • 打赏
  • 举报
回复
LZ 方便把这 四张的结果和数据贴上来吗?
qq_31832577 2015-10-10
  • 打赏
  • 举报
回复
说明一下丢失情况,每次会丢失最先插入的数据

17,134

社区成员

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

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