프로시저에서 에러 핸들러 처리를 하는데
프로시저 에서 정상이면 첫번째 레코드셋으로 0 `result` 값을 내려주고 두번째 레코드셋부터 데이터를 반환하도록 되어있습니다.
하지만 프로시저 에러가 났을 경우에는
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1 vErrNo=MYSQL_ERRNO,vErrState=RETURNED_SQLSTATE, vErrMsg=MESSAGE_TEXT;
SELECT 99 `result`;
END;
구문을 통해 에러를 핸들러 하고 있는데요..
지금 발생한 문제가 에러가 발생해도
select 0 `result`를 찍고 에러가 나기때문에
첫번째 레코드셋은 0 두번쨰 레코드셋은 99
이렇게 나오는 현상이 발생합니다 ..
혹시 프로시저에서 에러가 났을때 에러핸들러 안에 있는 구문만 실행 가능하도록 할 수 있을까요 ??
정상이면 첫번쨰 레코드셋으로
select 0 `result;
구문에러이건.. 어떤 모든 에러가 발생하면
select 99 `result`
를 반환하고 싶습니다.
고수님들 답변 기다리겠습니다. |