我正在对表格中的列执行批量更新。我需要将当前日期从NULL更改为过去的日期..我知道在针对单个帐户执行时工作正常。但是当使用WILDCARD时,这似乎失败了。
任何想法我的问题是什么,我不能在子查询中使用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条记录需要更新..
我已改为
更新消息 SET message.archived_at =(SELECT TO_CHAR(systimestamp-31,' DD-MON-YY HH.MI.SS') 从双) WHERE EXISTS(SELECT entity_id FROM user_info WHERE UPPER(directory_auth_id)喜欢' JLOADUSER1001%')
WHERE EXISTS部分中的SELECT查询,当它自己运行时返回10个用户ID ..但是当整个查询运行时,这会更新180万行..预期结果是~1500行..
答案 0 :(得分:2)
Oracle子查询和UPDATE语句中允许使用LIKE子句。看似错误的一行是:
WHERE EXISTS = (SELECT entity_id FROM user_info
使用:
WHERE EXISTS (SELECT entity_id FROM user_info
代替