![](/img/trans.png)
[英]ORA-01427: single-row subquery returns more than one row in Update Statement
[英]ORA-01427: single-row subquery returns more than one row with update
我有一条update语句,起初它可以处理一些数据,但是过了一段时间,我在某些regiters上遇到了问题,我遇到了以下错误: ORA-01427:单行子查询返回的行多 。 我以为这是IN,因为查询可能返回重复的ID,所以我放了DISTINCT但我一直遇到相同的错误,有人知道这是什么吗?
下面的查询:
UPDATE
TABLE_DETAIL DET
SET
DET.ACCEPTED=?,
DET.VALUE_ACCEPTED=(SELECT RES.VALUE FROM TABLE_RES RES WHERE RES.MYT=DET.MYT AND RES.RAD=DET.RAD AND RES.ITEM=DET.ITEM),
WHERE
DET.ID
IN (
SELECT
DISTINCT DET_I.ID
FROM TABLE_DETAIL DET_I, TABLE_RES RES_I, TABLE_REC REC
WHERE
DET_I.MYT = ?
AND
REC.TEMP
NOT IN (
SELECT DISTINCT TEMP
FROM
TABLE_IMAGES WHERE CODE=?)
AND RES_I.USER = ?
)
您不需要使用IN
SELECT DISTINCT
。
您的问题的近端原因是此代码:
DET.VALUE_ACCEPTED = (SELECT RES.VALUE FROM TABLE_RES RES WHERE RES.MYT=DET.MYT AND RES.RAD=DET.RAD AND RES.ITEM=DET.ITEM),
真的不可能说出如何解决它。 错误代码看起来很清楚:此查询返回了多个行。
如果需要任意值,可以添加WHERE rownum = 1
。 或SELECT
的聚合函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.