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개를 호출될 때는 에러가 발생한다.. 에휴. 어렵다...
'나는개발자다 > 기타' 카테고리의 다른 글
postgresql procedure에서 다른 procedure 호출하기. (0) | 2011.11.08 |
---|---|
postgresql if then 구문 주의 점.. (0) | 2011.11.07 |
Eclipse Indigo에서 Courier New 폰트 설정하기. (5) | 2011.07.21 |
Slf4J 사용하기. ( slf4j, log4j ) (0) | 2011.07.20 |
Log4J 간단 사용 정리. (2) | 2011.07.18 |