Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用LIKE时SQL-UPDATE命令失败_Sql_Oracle Sqldeveloper - Fatal编程技术网

使用LIKE时SQL-UPDATE命令失败

使用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

我正在对表中的一列执行批量更新。我需要将当前日期从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%')
我有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