select into시 오류문제 입니다. 0 3 2,134

by 파랑비 [2011.10.26 20:52:37]


select A, B, C into A1, B1, C1 from dual

이러한 방식으로 3개의 컬럼을 가져와서 그 값을 내부변수에 넣어주려 합니다.

그러나 3개중의 1개나 2개 또는 전부 데이터가 없어서 오류가 납니다.

강제로 데이터를 빈스트링 ' ' 이런거라도 넣어줄 방법은 없을까요...

내부변수에 값을 넣어서 다음 select 문에 where 문에 사용하려는건데 오류가 나서

어찌해야될지 모르겟습니다.

by finecomp [2011.10.27 06:51:51]
NVL(A, ' '), NVL(B, ' '), NVL(C, ' ') 이렇게...;

그러나 그런 문제해결방식보다는 근본적으로 발생가능한 오류들에 대한 예외처리까지 구현하는 것이 올바른 개발자의 몫이라고 봅니다.
막상 디버깅과정에서 보면 예상 밖의 오류일 수도 있으니까요...;

by 마농 [2011.10.27 09:37:21]
Select ~ Into 절은 Select 문의 수행 결과가 반드시 1건이어야 합니다.
결과가 없거나 2건 이상인 경우에는 에러가 발생합니다.
이때는 Begin ~ Exception ~ End 로 PL/SQL 블럭에서 에러처리를 해주시면 됩니다.

by 이재현 [2011.10.27 22:38:00]
select NVL( MAX( A ), ' ' ), NVL( MAX( B ), ' ' ), NVL( MAX( C ), ' ' ) into A1, B1, C1 from TAB1 WHERE .....

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