繁体   English   中英

ORA-01427:单行子查询返回的更新不只一行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM