我正在对表中的列执行批量更新。我需要将当前日期从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
WHERE UPPER(user_info.directory_auth_id) like 'USER%')我有10,000条记录需要更新。
我已更改为
更新消息集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(directory_auth_id) like 'JLOADUSER1001%')
WHERE EXISTS部分中的SELECT查询在单独运行时将返回10个用户ID。但是当整个查询运行时,这将更新180万行。预期结果为~1500行。
发布于 2014-04-29 17:35:36
允许在Oracle子查询和UPDATE语句中使用LIKE子句。看起来错误的一行是:
WHERE EXISTS = (SELECT entity_id FROM user_info使用:
WHERE EXISTS (SELECT entity_id FROM user_info相反,
https://stackoverflow.com/questions/23360787
复制相似问题