상수 선언/대입/할당 (CONSTANT DECLARATION)
PL/SQL에서 상수를 선언하고 할당하는 방법에 대해 알아보도록 하겠습니다. 우선 상수와 관련한 문법, 그리고 문법에 사용된 특수문자의 설명은 각각 다음과 같습니다~
[syntax]
<constant_name> CONSTANT <data_type> [NOT NULL] [ := | DEFAULT ] <constant_value>;
- < > 특수문자 부분은 사용자 정의 값입니다.
- [ ] 특수문자 부분은 선택사항입니다.
- [ ] 특수문자 내부의 | 문자는 또는(OR)을 의미합니다.
NOT NULL 제약조건을 추가하시면 값으로 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;
/