@.@);;; IN 타입이 값을 변경 할 수 없고 OUT 값은 변경하고 반환할 수 있다는 것이.... 아무리 생각해도 어떤 의미로 쓰셨는지 잘 이해가 되지는 않지만... 함수와 프로시저의 차이를 말씀 드리면.... 결과를 반환하는 개념이 있는 것은 같지만.. 결과 값 구조는 많이 다릅니다.
함수는 DB 스크립트를 처리하다 복잡하고 재사용성 높은 부분을 구조화하여 스크립트를 보다 단순히 사용하는 것이고 구조화 했다고 캐슁 효과가 발생하지는 않습니다.(저장형 함수 제외) 프로시저는 DB 스크립트를 단순화 하여 재사용 할 목적으로 사용하지는 않습니다. 프로시저 말 그대로 단위 프로그램을 짜는 것이며 OUT은 보통 어플리케이션과 연계하여 처리 하는 스토어프로시저 방식에서 많이 씁니다. 프로그램을 실행하다가 처리 결과를 OUT를 통해 받는 목적이이라 봅니다.
같은 얘기로 함수는 질의 단순화가 될 것 같고 프로시저는 단위 프로그램 실행 후 결과라고 볼 수 있을 것 같습니다.
= ㅅ =)ㅋ 프로시저 사용 방법을 잘 모르시면, 최대한 프로시저를 사용하지 않고 해결하시는 것이 좋을 것 같습니다... 그러다 보면 어느 순간 해당 방법으로 해결 되지 않을 때 프로시저를 검토해보시는 것도 좋은 방법이 될 것 같습니다. 그리고 말이 좀 애매하긴 한데, 프로시저도 리턴 개념이 있다는 것은 일반화 될 수 있을 것 같은데 리턴 값이 무조건 있다고 하는 것은 약간 개념적으로 위배될 수 있을 것 같습니다. @_@);; 정확히 프로시저는 프로토타입 부분에 인자 값을 설정 할 수 있으며 인자 값은 입력 성격과 출력 성격 IN과 OUT으로 정의 할 수 있습니다. OUT 부분에 인자 값을 설정하면 리턴 값이 아닌 프로시저 수행 중 사용자가 정의한 값이 OUT 인자 값으로 반환 됩니다. 함수는 보통 처리 결과 값이 리턴 되지만, 프로시저는 처리 결과가 아닌 처리를 하고 사용자가 지정한 값들이 OUT으로 반환 됩니다. 물론 의도적으로 함수처럼 처리 결과를 리턴(=반환) 할 수 있습니다.