ORA-01427: single-row subquery returns more than one row
ORA-01427 오류는 하위 쿼리가 단일 행을 반환해야 하는데, 여러 행을 반환했을 때 발생한다.
아래는 오류가 발생한 sql쿼리문
select *
from project
where pj_professor = (
select member_id
from member
where m_type = 'P'
and member_id = 'user01'
)
and pj_class_name = (
select class_name
from class
where class_status='Y');
아래의 구문에서 여러행이 조회되어서 나는 오류였다.
select class_name
from class
where class_status='Y');
여러행을 조회할수있는
IN으로 대체해서 오류 해결
select *
from project
where pj_professor = (
select member_id
from member
where m_type = 'P'
and member_id =#{memberId}
)
and pj_class_name in (
select class_name
from class
where class_status = 'Y'
)