DATABASE/SQL, PL-SQL

PL/SQL 식별자 - 2

devstep88 2021. 1. 17. 22:17

일반 사용자 정의 식별자

-규칙

  •  첫 글자는 알파벳이나 한글과 같은 지역언어의 문자로 시작하며, 최대 30바이트의 길이를 가진다
  • 두 번짜 문자부터는 알파벳, 한글, 숫자, _, $, #과 같은 문자들이 올 수 있다.
  • 예약어는 사용할 수 없다.

대부분의 키워드는 사용자 저의 식별자로 사용할 수 있다. 하지만 키워드를 사용자 정의 식별자로 사용하면 사용에 제약이 따를 수도 있고 해당 식별자가 사용자 정의 식별자로 사용된 것인지 키워드 본연의 목적으로 사용된 것인지 구별에 혼동이 생길 수 있으므로 바람직하지 않다.

 

-일반 사용자 정의 식별자 예시

DECLARE
	c_pi CONSTANT NUMBER := 3.14; -- 알파벳 식별자
    사번 VARCHAR2(30);			-- 한글 식별자
    v_2_by_2 NUMBER;			  -- 숫자 사용
    v_ten$	NUMBER;				  -- $ 문자 사용
    v_seq#	NUMBER;				  -- # 문자 사용
BEGIN
	NULL;
END;

큰따옴표를 사용한 사용자 정의 식별자

식별자는 큰따옴표로 감싼 형태로 사용할 수 있다.

기본적으로 식별자는 대소문자를 구별하지 않지만 큰따옴표로 감싸면 대소문자가 구별된다.

큰따옴표를 사용하면 일반 사용자 정의 식별자의 제한 사항 중 30자 길이 제한을 제외한 모든 제약 사항을 넘어설 수 있다. 심지어 공백 문자나 특수 문자를 포함한 사용자 정의 식별자를 사용할 수도 있다. 또한 예약어나 키워드까지도 모두 사용자 정의 식별자로 사용할 수 있다. 다시 말해 큰따옴표를 사용하면 어떠한 문자열이라도 사용자 정의 식별자로 사용할 수 있다.

 

DECLARE
	v_num		NUMBER;	--일반 사용자 정의 식별자(대문자 V_NUM으로 식별됨)
    "v_num"		NUMBER; --소문자 사용자 정의 식별자
    "공백 포함 변수명" NUMBER; -- 공백 문자를 포함한 사용자 정의 식별자
    "v_~!@#$%^&*()+-=" NUMBER; -- 특수 문자를 포함한 사용자 정의 식별자
    "BEGIN"		NUMBER;  -- 예약어를 사용한 사용자 정의 식별자
    
    FUNCTION "square number"(a_num NUMBER) --함수형 식별자에 소문자와 공백문자 포함
    RETURN NUMBER IS
    BEGIN
    	RETURN a_num * a_num;
    END;
    
BEGIN
	"v_num"				:= 10;					
    v_num				:= 20;					
    "공백 포함 변수명"	 := 30;					
    "v_!@#$%^&*()+-="   := 40;
    "BEGIN"				:= 50;
    DBMS_OUTPUT.PUT_LINE("v_num");				-- 소문자 식별자 = 10
    DBMS_OUTPUT.PUT_LINE(V_NUM);				-- 대문자 식별자 = 20
    DBMS_OUTPUT.PUT_LINE(v_num);				 -- 대문자 식별자(위와 동일) = 20
    DBMS_OUTPUT.PUT_LINE("V_NUM");				-- 대문자 식별자(위와 동일) = 20
    DBMS_OUTPUT.PUT_LINE("공백 포함 변수명");	 -- =30
    DBMS_OUTPUT.PUT_LINE("v_!@#$%^&*()+-=");	-- = 40
    DBMS_OUTPUT.PUT_LINE("BEGIN");				-- = 50
    DBMS_OUTPUT.PUT_LINE("square number"(10));	-- = 100