상세 컨텐츠

본문 제목

MSSQL 과 ORACLE 프로시저 사용비교

데이터베이스

by 김일국 2010. 11. 12. 23:40

본문

 

. 자주 사용하는 객체
MSSQL : Stored Procedure, Function
Oracle : Stored Procedure, Function

 

. DDL 구문
MSSQL 
 생성 : CREATE PROCEDURE / CREATE FUNCTION
 수정 : ALTER PROCEDURE / ALTER FUNCTION

Oracle :
 생성과 수정 : CREATE OR REPLACE PROCEDURE / CREATE OR REPLACE FUNCTION
생성하거나 수정하거나 동일한 구문을 사용.

 

. 변수선언
MSSQL : declare 라고 명시 후 어디서나 가능. @를 앞에 명시해야 함.
Oracle : 변수 선언 section이 있음. 객체이름 (테이블, 프로시져, 함수)에서 사용되지 않은 단어. prefix 등으로 구분하지 않아도 됨.
example)
CREATE OR REPLACE PROCEDURE USP_XXXXXXXXX
IS
 v_AddPartitionName varchar2(30);
 v_AddDate varchar2(8);
 v_DropPartitionName varchar2(30);
 v_i int;
BEGIN
END;
위의 붉은 색 부분이 변수 선언부분 입니다.
이 부분이 Oracle 문법이 불편합니다. 프로시저 작성 시 프로시져가 길어질 경우 변수를 바로 선언하지 못하고 맨 위로 올라가서 변수를 선언해야 합니다.
또한 변수를 구분하는 prefix 가 없는 것이 생각보다 불편합니다. 변수인지, 테이블인지, 컬럼인지 프로시져 내에서 바로 확인하기 위해 인위적은 prefix를 사용합니다.
parameter의 경우 p_ 를... 로컬 변수인 경우 v_ 를.. 흔히 사용합니다.

관련글 더보기

댓글 영역