[개발] Programming/Database
ora-01427: 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다. 오류
eatyourKimchi
2019. 5. 28. 14:02
728x90
ora-01427 오류
오라클에서 하나의 값이 리턴되어야 하는데, 2개 이상의 값이 리턴되면 발생하는 오류.
몇 가지 케이스를 예로 들면,
1. 오라클 함수
null 체크를 할 수 있는 NVL() 함수를 사용할 때 리턴되는 값이 둘 이상이면 발생.
해결 방법은 하나의 값만 리턴하게 만드는 방법 밖에는 없다.
2. WHERE 조건
쿼리에서 WHERE에 비교하는 경우 '='을 사용하면 하나의 값만 비교가 가능함.
근데 만약 2개 이상의 값을 입력하는 경우 오류가 발생.
1
2
3
4
|
SELECT *
FROM TEST_TABLE_A
WHERE NAME = (SELECT NAME FROM TEST_TABLE_B)
|
cs |
이때 WHERE 조건에 있는 'SELECT NAME FROM TEST_TABLE_B' 쿼리에서 리턴되는 값 'NAME'이 하나 이상이면 오류가 발생한다. 해결하기 위해서는 '='을 'IN'으로 바꿔서 여러 값을 비교하면 된다.
1
2
3
4
|
SELECT *
FROM TEST_TABLE_A
WHERE NAME IN (SELECT NAME FROM TEST_TABLE_B)
|
cs |
728x90