簡體   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