![](/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.