Oracle 프로시저를 MSSQL 프로시저로 변환할 때 알아두면 좋은 핵심 포인트

2026. 7. 30. 18:45·Programming/Database

Oracle 기반 시스템을 MSSQL로 마이그레이션할 때 가장 많은 작업이 발생하는 영역 중 하나가 프로시저(Procedure) 변환입니다. 두 DBMS는 SQL 문법과 내장 함수, 예외 처리 방식에 차이가 있기 때문에 주요 변경 사항을 이해하고 작업하는 것이 중요합니다.

이번 포스팅에서는 Oracle 프로시저를 MSSQL 프로시저로 변환할 때 자주 사용되는 대표적인 변환 예제를 정리해보겠습니다.니다.

 

1. DECODE → CASE 문으로 변경

Oracle의 DECODE 함수는 MSSQL에서 지원하지 않으므로 CASE 문으로 변경해야 합니다.

Oracle

DECODE(STATUS,
       'A', '승인',
       'R', '반려',
       '기타')

 

MSSQL

CASE STATUS
    WHEN 'A' THEN '승인'
    WHEN 'R' THEN '반려'
    ELSE '기타'
END

 

2. SELECT INTO (DUAL) → 변수 SET 문으로 변경

Oracle에서는 변수에 값을 할당하기 위해 SELECT ... INTO ... FROM DUAL 구문을 자주 사용합니다.

Oracle

SELECT A, B
INTO V_A, V_B
FROM DUAL;

 

MSSQL

SELECT
    @V_A = A,
    @V_B = B;

 

3. NUMBER 타입 변경

Oracle의 NUMBER 타입은 MSSQL에서 목적에 따라 적절한 숫자형 타입으로 변경해야 합니다.

Oracle MSSQL
NUMBER INT
NUMBER(10) INT
NUMBER(18) BIGINT
NUMBER(10,2) DECIMAL(10,2)
NUMBER(18,4) NUMERIC(18,4)

4. ADD_MONTHS → DATEADD

Oracle의 날짜 계산 함수인 ADD_MONTHS는 MSSQL의 DATEADD 함수로 변경할 수 있습니다.

Oracle

ADD_MONTHS(ORDER_DATE, -1)

 

MSSQL

DATEADD(MONTH, -1, ORDER_DATE)

5. 예외 처리(Exception) 방식 변경

Oracle은 EXCEPTION 구문을 통해 예외를 처리하지만, MSSQL은 @@ERROR, @@ROWCOUNT, 또는 TRY...CATCH 구문을 사용합니다.

 

Oracle

EXCEPTION WHEN NO_DATA_FOUND THEN
    rollback;
END;

 

MSSQL

 

IF @@ERROR <> 0 BEGIN
    IF @@ROWCOUNT = 0 BEGIN
        ROLLBACK
    END
END

 

 

'Programming > Database' 카테고리의 다른 글

MSSQL DB가 주의대상이 되었을때  (0) 2026.07.27
MSSQL 자동백업방법  (0) 2026.06.24
MSSQL 서버 테이블 수정하기/자동증가값 초기화/패스워드 암호화 하기  (0) 2025.12.20
MSSQL 함수 구현 #1 (문자 앞에 0을 붙이는 함수)  (0) 2025.12.19
[MySQL] SQL 배치 작업 하기  (0) 2025.12.19
'Programming/Database' 카테고리의 다른 글
  • MSSQL DB가 주의대상이 되었을때
  • MSSQL 자동백업방법
  • MSSQL 서버 테이블 수정하기/자동증가값 초기화/패스워드 암호화 하기
  • MSSQL 함수 구현 #1 (문자 앞에 0을 붙이는 함수)
레이조(RayCho)
레이조(RayCho)
개발자 레이조(RayCho)의 블로그입니다. 똑똑하게 배우고 기록하는 공간
  • 레이조(RayCho)
    레이(Ray)의 개발이야기
    레이조(RayCho)
  • 전체
    오늘
    어제
    • 분류 전체보기 (101) N
      • Programming (101) N
        • Python (9)
        • Flutter (4)
        • Delphi (25)
        • Java,Spring Boot (2) N
        • Lazarus (2)
        • C#.NET (20)
        • ASP.NET (5)
        • Database (8)
        • Game Dev (6)
        • Rust (3)
        • PHP (3)
        • Web (6)
        • ETC (8)
  • 블로그 메뉴

    • 홈
    • Introduce
    • 태그
  • 링크

    • Naver Blog
    • Diary Blog
  • 공지사항

  • 인기 글

  • 태그

    ASP.NET
    개발환경
    프로젝트
    소스코드
    프로그래밍
    delphi
    델파이
    Flutter
    csharp
    objectpascal
    Python
    mssql
    문법
    Web
    C#
    WPF
    VCL
    기초
    iis
    PSP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
레이조(RayCho)
Oracle 프로시저를 MSSQL 프로시저로 변환할 때 알아두면 좋은 핵심 포인트
상단으로

티스토리툴바