단일행 하위 질의에 2개 이상의 행이 리턴되었습니다 오류 0 3 1,884

by 니비 [Oracle 에러코드] 오라클 단일행 서브쿼리 [2021.05.27 19:08:35]


insert into AI_BALSONGDAESANGJA_M_TEMP ( BALSONG_DT, CHASU, JUSOROK_CD, BALSONG_GB, UPDATE_ID, UPDATE_DT, UPDATE_PG, UPDATE_IP, INPUT_ID, INPUT_DT ) values ( ::Option.S_BALSONG_DT, ::Option.S_CHASU, (select HAKBEON from US_HAKJEOK_M where 1=1 and HAKJEOKSANGTAE = '01' DBID = 3), '01', ::USERID, SYSDATE, 'ai_002_t', ::USERIP, ::USERID, SYSDATE ) DBID = 5; 

 

여러건을 저장해야하는데 (select HAKBEON from US_HAKJEOK_M where 1=1 and HAKJEOKSANGTAE = '01' DBID = 3)에서 HAKBEON이 여러행이라 '단일행 하위 질의에 2개 이상의 행이 리턴되었습니다' 오류가 뜹니다ㅠㅠ 조건을 걸어서 한 건만 나오게 해야한다는데 어떤 조건을 넣어줘야할지 모르겠습니다. 고수님들 도와주세요....

by 마농 [2021.05.27 20:28:21]

무언가를 발송하는 프로세스인가요?
발송 대상자를 뽑는 쿼리가 서브쿼리인듯 하네요.
서브쿼리를 VALUES 의 값으로 사용할게 아닌 것 같습니다.
SELECT 의 결과를 그대로 입력하는 형태가 되어야 할 것 같습니다.
( INSERT ~ VALUES ) 구문이 아닌 ( INSERT ~ SELECT ) 구문 사용


by 니비 [2021.05.27 20:53:42]

INSERT VALUES에 서브쿼리를 넣으면 안되는거군요. 감사합니다..!! 덕분에 해결하고 퇴근합니다ㅠㅠ


by 우리집아찌 [2021.05.28 15:13:03]

무조건 한건이면 rownum = 1

기준순번/날짜가 있으면  min() keep() 함수도 가능합니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입