* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 32bit, Linux 64bit 등 | |
[cubrid_rel] 수행 결과 | |
[도움말]-[버전정보] 확인 | |
java, php, odbc 등 입력 |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
안녕하세요 큐브리드 Q&A 관리자님 방갑습니다
현재 오라클에서 큐브리드로 마이그래이션 작업중입니다.
테이블과 데이터, 시퀀스 약간 오류가 있지만 마이그래이션툴로 옮겼구요
트리거는 큐브리드에서 다시 만들었구요 프로시저는 직접 작성하고있습니다
궁금한점은 큐브리드에서 함수와 프로시저를 작성중인데
제가 알아본 바로는 큐브리드에서의 함수와 프로시저의 차이가 리턴값의 유무 인것 같습니다.
직접 만들다 보면서 왜 굳이 프로시저를 따로 만들었을까? 하는 의문점이 생기는데요
함수로도 프로시저의 기능이 가능하니까요 그냥 "자바스토어드프로시저" 라고 함수기능만
제작했으면 되지 않았나요?
함수와 프로시저 왜 따로 기능이 있는건가요?
안녕하세요.
프로시저와 함수의 차이는 다음과 같습니다.
* 프로시저는 리턴값을 0~N개까지 가질수 있지만, 함수는 반드시 1개를 리턴값으로 받아야 합니다.
* 프로시저는 input/output 파라미터를 가질수 있지만, 함수는 input 파라미터만 가질 수 있습니다.
* 프로시저는 select문 이외의 DML 문장 수행이 가능하지만, 함수는 불가능합니다.
* 프로시저는 함수를 호출할 수 없지만, 함수는 프로시저 호출이 가능합니다.
* 프로시저는 try-catch 문을 이용한 exception 처리가 가능하지만, 함수는 불가능합니다.
이 외에도 프로시저와 함수는 차이점을 가지고 있습니다. 이는 CUBRID의 Stored Procedure/Function 뿐만 아니라 타 DBMS의 Procedure와 Fuction도 동일한 차이점을 가지고 있습니다.
위 내용은 타 사이트를 참고하였으며, 자세한 사항은 [Differences between Stored Procedures and Functions]을 참고해 주세요.
감사합니다.