为 Oracle 更新查询 if 语句
Posted
技术标签:
【中文标题】为 Oracle 更新查询 if 语句【英文标题】:Update query if statement for Oracle 【发布时间】:2015-04-19 07:28:38 【问题描述】:我需要更新我的 oracle 表中新创建的列。为此,我需要使用行中的现有值来决定如何填充此列,我收到错误:
java.lang.NullPointerException -> See Debug Output for details
这是我的查询:
UPDATE
SCHEMA_NAME.TABLE_NAME
SET
OCO= IF CO= 'Y' AND COM='Y' THEN
'Y'
ELSE
'N'
END IF;
对语法有什么建议吗?
【问题讨论】:
【参考方案1】:您可以在SET
子句中使用CASE 表达式。
例如,
UPDATE table
SET schema.column = CASE
WHEN CO= 'Y' AND COM='Y' THEN
'Y'
ELSE
'N'
END
【讨论】:
如果 'CO' 或 'COM' 的值在同一个语句中被更新,case 块会考虑 'CO' 和 'COM' 列的旧值还是更新后的值? @gkapagunta Oracle 遵循 ACID 属性进行事务处理。阅读有关它的更多信息,您将在问题本身中找到答案。顺便说一句,答案是否定的。以上是关于为 Oracle 更新查询 if 语句的主要内容,如果未能解决你的问题,请参考以下文章