Oracle 存储过程 如何实现插入数据时出错后,但还继续执行 5

例如一个存储过程执行下面语句,ID是主键,因为第三条会报错,所以我想将前两条插入table1处理错误数据,将第三条插入table2table1和table2表结构一样,如... 例如一个存储过程执行下面语句,ID是主键,
因为第三条会报错,所以我想将前两条插入table1
处理错误数据,将第三条插入table2
table1和table2表结构一样,如何实现?

insert into table1
select 1 as id,'Alex' as name,33.6 as total from dual
union all
select 2 as id,'Alex' as name,33.6 as total from dual
union all
select 1 as id,'Alex' as name,33.6 as total from dual

(这只是一个例子,主要意思是存储过程能加载进正确数据且不中断,把错误数据抛弃或者捕获到其他表里)

还有在Oracle中如果能实现,那么在Sql server中要怎么实现?
也希望指点一下,谢谢!!!
展开
 我来答
chaofeng2152
推荐于2017-09-04 · 超过28用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:25.5万
展开全部
begin
insert …… ;--可能出错的地方
exception
when others then
null;--出错后跳到这里来。

end;

将可能出错语句包裹起来,抓异常,不影响往下执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
满地图找牙
2013-05-21 · TA获得超过348个赞
知道小有建树答主
回答量:404
采纳率:100%
帮助的人:219万
展开全部
一个SQL文肯定实现不了这个功能,你可以分成三个SQL执行,然后用exception捕捉异常。
SQL SERVER里处理也一样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xyh94233
2013-05-23 · TA获得超过157个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:110万
展开全部
可以考虑在执行这段代码的时候 try catch一下 或者是循环操作的方法 一出错continue一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路下雨叶湘伦
2013-05-26
知道答主
回答量:10
采纳率:0%
帮助的人:3.7万
展开全部
用处理异常的方法就可以了啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-23
展开全部
可以考虑一下批处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式