使用LIKE时SQL-UPDATE命令失败
我正在对表中的一列执行批量更新。我需要将当前日期从NULL更改为过去的日期。。我知道,当针对单个帐户执行时,它可以正常工作。但当使用通配符时,这似乎失败了 如果你知道我的问题是什么,我可以不在子查询中使用LIKE使用LIKE时SQL-UPDATE命令失败,sql,oracle-sqldeveloper,Sql,Oracle Sqldeveloper,我正在对表中的一列执行批量更新。我需要将当前日期从NULL更改为过去的日期。。我知道,当针对单个帐户执行时,它可以正常工作。但当使用通配符时,这似乎失败了 如果你知道我的问题是什么,我可以不在子查询中使用LIKE SET message.archived_at = (SELECT TO_CHAR(systimestamp-31, 'DD-MON-YY HH.MI.SS') FROM dual) WHERE EXISTS = (SELECT entity_id FROM user_info WHE
SET message.archived_at = (SELECT TO_CHAR(systimestamp-31, 'DD-MON-YY HH.MI.SS')
FROM dual)
WHERE EXISTS = (SELECT entity_id FROM user_info
WHERE UPPER(user_info.directory_auth_id) like 'USER%')
我有10000条记录需要更新
我改成
更新消息
设置message.archived_at=选择_CHARsystimestamp-31,'DD-MON-YY HH.MI.SS'
来自双重
如果存在,请从用户信息中选择实体id
其中UPPERdirectory_auth_id类似于“JLOADUSER1001%”
WHERE EXISTS部分中的SELECT查询在单独运行时返回10个用户ID。。但是当整个查询运行时,会更新180万行。。预期结果约为1500行。在Oracle子查询和UPDATE语句中允许使用类似子句。似乎错误的一行是:
WHERE EXISTS = (SELECT entity_id FROM user_info
使用:
相反用户信息目录认证id是否以用户开头?另外,请添加错误msg..SQL错误:ORA-01427:单行子查询返回多行01427。00000-单行子查询返回多行*原因:*操作:看起来我的SQL查询在更新时忽略了SELECT语句-所有行都在“message”表中更新。。一旦我删除WHERE EXISTS之后的=,您将更新所有行,因为您没有指定第一个表和用户信息之间的任何关系。您能指定这两个表之间的逻辑关系吗?
WHERE EXISTS (SELECT entity_id FROM user_info