본문 바로가기
프로그래머의 길/Oracle

PL/SQL (4) - 연산자

by 하늘아래. 2008. 2. 13.
반응형

연산자 종류

 

- 대입 연산자

      변수   :=    

 

- 산술 연산자

      ** : 지수연산자. 10**5 = 10*10*10*10*10

      + - * / : 산술계산

 

- 비교 연산자 : 반환값은 True / False.

      =  : 대등 연산자

     <>, !=, ~=  : 부등 연산자

     <, >, <=, >=  : 범위 비교

     LIKE  : 패턴일치 연산자  (log% : log 시작하는 모든 .  log___ : log 시작하고 log 뒤에가 3자리인 )

     BETWEEN a AND b : 지정한 범위(a~b) 사이

     IN  : 값이 목록내에 있는지 

     IS NULL  : 값이 null인지 조사

 

 

[예제1] LIKE 연산자를 사용한 함수  - 함수이기 때문에 RETURN 값을 지정하여야 한다.

************************************************************************

CREATE OR REPLACE FUNCTION mobile_phone (phone_number IN VARCHAR2)

RETURN VARCHAR2 AS

BEGIN
        IF phone_number LIKE '___-%-____' THEN

                IF SUBSTR(phone_number,1,3) = '011' THEN
                        RETURN 'SK Telecom 011';

                ELSE IF SUBSTR(phone_number,1,3) = '016' THEN
                        RETURN 'KTF 016';

                     ELSE
                        RETURN 'ETC...';

                     END IF;
                END IF;
        END IF;
END;
/
*************************************************************************

 

SQL> set serveroutput on

 

SQL> select * from dba_objects where object_name like 'MOBILE%';  VALID 상태 확인

 

사용자 삽입 이미지

 

SQL> select mobile_phone('016-0000-0000') MAKER from dual;

 

MAKER
----------------------------------------------------------
KTF 016
 

사용자 삽입 이미지



-
논리 연산자

     AND, OR, NOT

 

- 스트링 연산자

     ||  : 스트링 연결 연산자.  ex) myname = 'Kang' || ' ' || 'Yong Woon';

 

 

 

연산자 우선순위

- 눈으로 확인하기 어려운 복잡한 식의 경우 괄호를 사용하여 우선순위를 제어하거나 보기 쉽게 한다.

 

    **, NOT

    +,- (양수,음수)

    *,/

    +,-,||  

    =, <>, !=, ~=, <, >, <=, >=, LIKE, BETWEEN, IN, IS NULL

    AND

    OR

 

 

NULL

- NULL 조사시엔 항상 IS NULL 연산자를 사용해야 한다.    ex) IF a = NULL      IF a IS NULL

- NVL 함수를 통해 값이 NULL 일때 기본값을 지정할 있다.   NVL(, Null 일때 )

 

 

변환

- 자동으로 형변환이 이루어지거나, 직접 형변환을 지정할 있다.

- 자동으로 형변환이 이루어지게 하는 것보다는 명시적으로 변환시키는 것이 좋다.

- 관련 함수

TO_DATE : 문자날짜

TO_NUMBER : 문자숫자

TO_CHAR : 숫자,날짜문자

반응형