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 |
'[개발] Programming > Database' 카테고리의 다른 글
오라클 날짜(DATE) 비교, to_date, to_char 함수 (0) | 2019.07.31 |
---|---|
ora-01843: not a valid month, 지정한 월이 부적합합니다. (0) | 2019.06.01 |
오라클 ORA-01722: 수치가 부적합합니다. (0) | 2019.05.24 |
오라클 SELECT 후 UPDATE 쿼리 (0) | 2019.04.09 |
오라클 SELECT 절에 문자 합치는 방법 (0) | 2019.02.21 |
댓글