如果可能的话如何进行更新,否则在oracle中进行插入

时间:2016-07-23 00:07:04

标签: sql oracle

当更新语句不起作用时,是否可以引发异常。

例如:

UPDATE tableA
SET x = 2,
modified_by = userID,
WHERE prod_id = in_prod_id
AND loc_id = in_loc_id
AND invType = in_InvType
AND inv_status = 'N'

但如果该语句没有找到需要更新的行,我希望能够引发异常或以某种方式识别它,以便我可以执行插入语句。

我试过

EXCEPTION 
WHEN NO_DATA_FOUND
THEN

-- insert into..... 

,但那并没有奏效......因为它从来没有像我想的那样引发异常。

我找到的一个解决方案是检查并查看表中是否存在此类记录以执行更新。但我想知道是否有更好的方法。

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要的是合并声明

看看这是否可以帮助您:http://www.oratable.com/oracle-merge-command-for-upsert/