더북(TheBook)

연산자

PL/SQL 블록에서는 모든 SQL 연산자를 사용할 수 있으며, 연산자 우선순위는 다음과 같다.

표 8-2 연산자 우선순위
연산자 설명
** 제곱 연산자
+, - 양수, 음수 식별 연산자
*, / 곱셈, 나눗셈
+, -, || 덧셈, 뺄셈, 문자열 연결 연산자
=, <, >, <=, >=, < >, !=, ~=, \^=, IS NULL, LIKE,BETWEEN, IN 비교 연산자
NOT 논리 연산자
AND 논리 연산자
OR 논리 연산자

우선순위가 가장 높은 ‘**’ 연산자는 제곱 연산자를 뜻하는데 PL/SQL에서만 사용할 수 있다. 예를 들어, 2**3는 2의 3제곱을 뜻한다. 다음 익명 블록을 실행해 보자.

입력

    DECLARE
      a INTEGER := 2**2*3**2;
    BEGIN
      DBMS_OUTPUT.PUT_LINE('a = ' || TO_CHAR(a));
    END;

결과

    a = 36

2**2*3**2에서 ‘**’ 연산자가 우선순위가 있으므로, 풀어 쓰면 (2^2^*3^2^) = (4*9) = 36이 된 것이다.

[표 8-2]에서 두 값이 같지 않음을 나타내는 비동등 연산자 ‘< >’, ‘!=’, ‘~=’, ‘\^=’ 네 가지 모두를 사용할 수 있다는 점을 알아두자.

AND, OR, NOT 논리 연산자는 그 값에 따라 반환하는 연산 결과를 정리해 보면 다음과 같다.

표 8-3 논리 연산자 연산 결과
x y x AND y x OR y NOT x
TRUE TRUE TRUE TRUE FALSE
TRUE FALSE FALSE TRUE FALSE
TRUE NULL NULL TRUE FALSE
FALSE TRUE FALSE TRUE TRUE
FALSE FALSE FALSE FALSE TRUE
FALSE NULL FALSE NULL TRUE
NULL TRUE NULL TRUE NULL
NULL FALSE FALSE NULL NULL
NULL NULL NULL NULL NULL
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.