oracle 更新 是否影响查询,sql – Oracle中的动态更新查询

我正在尝试为表创建标准的UPDATE查询.但是,如果满足某些条件,则应在UPDATE语句中包含/排除某些列.

例如:

UPDATE TBL_PROJECT SET

REVISION_COUNT = V_REVISION_COUNT

,PRIMARY_BRANCH = IN_PRIMARY_BRANCH

,PROJECT_STATUS = IN_PROJECT_STATUS

...

WHERE PROJECT_ID = IO_PROJECT_ID

AND REVISION_COUNT = IO_REVISION_COUNT

RETURNING REVISION_COUNT INTO IO_REVISION_COUNT';

但是,该表有两列供提交和批准.因此,如果状态设置为已提交或已批准,我希望更新这些列.例如.

IF IN_PROJECT_STATUS = 'SUB'

UPDATE TBL_PROJECT SET

SUBMITTED_DATE = SYSDATE

ELSIF IN_PROJECT_STATUS = 'APP'

UPDATE TBL_PROJECT SET

APPROVED_DATE = SYSDATE

END;

我还需要返回REVISION_COUNT和受影响的行数(rowcount)以检查更新是否成功.

编写此查询的最佳方法是什么?我假设动态查询比if-elsif-else语句更好,整个查询在每个块中几乎重复.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值