나는개발자다/기타
postgresql Table의 row를 return하는 procedure
혀기님
2011. 11. 7. 15:26
create or replace function test() returns user_info as $$ declare result user_info%ROWTYPE; begin select * into strict result from user_info where user_no = 22;
EXCEPTION WHEN NO_DATA_FOUND THEN RAISE EXCEPTION 'user info % not found', 22; WHEN TOO_MANY_ROWS THEN RAISE EXCEPTION 'too many % found', 22; return result ;
end; $$ language plpgsql
strict는 반드시 1행만 return 한다는 조건이다.
Data가 없을 경우 No_DATA_Found
2행 이상일 경우 Too_Many_Rows 에러 발생한다.
근데 EXCEPTION이 처리되지 않는 상황.. 즉 data를 정확히 1개를 호출될 때는 에러가 발생한다.. 에휴. 어렵다...