[ORACLE] PL/SQL 상수 선언 , CONSTANT DECLARATION [오라클]

상수 선언/대입/할당 (CONSTANT DECLARATION)

PL/SQL 상수 선언

PL/SQL에서 상수를 선언하고 할당하는 방법에 대해 알아보도록 하겠습니다. 우선 상수와 관련한 문법, 그리고 문법에 사용된 특수문자의 설명은 각각 다음과 같습니다~

[syntax]
<constant_name> CONSTANT <data_type> [NOT NULL] [ := | DEFAULT ] <constant_value>;
  • < > 특수문자 부분은 사용자 정의 값입니다.
  • [ ] 특수문자 부분은 선택사항입니다.
  • [ ] 특수문자 내부의 | 문자는 또는(OR)을 의미합니다.

NOT NULL 제약조건을 추가하시면 값으로 NULL , '' 선언이 불가합니다.

NOT NULL 제약조건을 추가 했을 때

이러한 경우는 거의 없겠으나, 동시에 적용하면 예외가 발생합니다.

  • ORA-06502: PL/SQL: 수치 또는 값 오류
  • ORA-06502: PL/SQL: numeric or value error string

변수처럼 할당하기

식, 또는 표현은 피할당자로 사용될 수 없습니다. 그렇기에 변수가 아니라, 상수라고 부르는 이유일 것입니다.

  • PLS-00363: 식은 피할당자로 사용될 수 없습니다.
  • PLS-00363: expression cannot be used as an assignment target

상수는 변수처럼 할당 대상이 될 수 없습니다.

사용 예시 자료입니다. 스크립트로 실행해 보면 도움이 될 것입니다.

SET SERVEROUTPUT ON

DECLARE
   --<constantName> CONSTANT <dataType> [NOT NULL] [ := | DEFAULT ] <constantValue>;
   CV1   CONSTANT NUMBER NOT NULL := 100;
   CV2   CONSTANT NUMBER NOT NULL DEFAULT 100;
   CV3   CONSTANT NUMBER := 100;
   CV4   CONSTANT NUMBER DEFAULT 100;
   CV5   CONSTANT NUMBER := '';
--   CV6   CONSTANT NUMBER NOT NULL := '';
BEGIN
   DBMS_OUTPUT.PUT_LINE ('CV1: ' || CV1);
   DBMS_OUTPUT.PUT_LINE ('CV2: ' || CV2);
   DBMS_OUTPUT.PUT_LINE ('CV3: ' || CV3);
   DBMS_OUTPUT.PUT_LINE ('CV4: ' || CV4);
   DBMS_OUTPUT.PUT_LINE ('CV5: ' || CV5);
   
--   CV5 := 1000;
END;
/

댓글