SQLPLUS에서 aisle from table itemloc_tmp
을 aisle from table itemloc_tbl
에서이 SQL 문으로 업데이트하고 항목에서와 같이 오류를 계속 반환합니다.SQL 오류를 업데이트하는 중 ORA-01427 : 단일 행 하위 쿼리가 둘 이상의 행을 반환합니다.
업데이트 : itemloc_tmp
ITEM_ID SID SEC AIS
------------- --- --- ---
0007AAAAAAAAA AA3 12
0007BBBBBBBBB BB2 13
0007CCCCCCCCC CC8 11
이가에서 이것은 샘플 데이터 이것은 내 SQL 문
UPDATE ct.itemloc_tbl t1 SET
t1.aisle = (SELECT t2.aisle FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id)
WHERE t1.item_id IN (SELECT t2.item_id FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id)
그래서입니다 itemloc_tbl
ITEM_ID SID SEC AIS
------------- --- --- ---
0007AAAAAAAAA
0007BBBBBBBBB
0007CCCCCCCCC
의 샘플, 내가 원하는 aisle
열을 업데이트하십시오. n은 itemloc_tmp
에서 itemloc_tbl
이지만 위의 내용은 작동하지 않습니다. 아무도 내가 잘못한 곳을 지적 해 주겠니?
하위 쿼리가 여러 결과를 반환합니다 (오류가 말한 것처럼) - 'aisle' 열을 업데이트 할 때 사용해야하는 값은 무엇입니까? 샘플 데이터와 예상 결과가 도움이 될 것입니다. – sgeddes
다음과 같이 오류가 발생합니다 :'SELECT t2.aisle FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id'는 둘 이상의 행을 반환합니다. 'item_id' 값은 고유하지 않습니까? 그게 정상인가요? – sstan
예, item_id와 aisle은 고유하지 않습니다. 그리고, 나는 '통로'를 갱신 할 방법을 찾고있다. 이후, sqlplus는 join 함수를 가지고 있지 않은 것으로 보입니다. – Alexander