PL/SQL 식별자 - 2

    일반 사용자 정의 식별자

    -규칙

    •  첫 글자는 알파벳이나 한글과 같은 지역언어의 문자로 시작하며, 최대 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

    'DATABASE > SQL, PL-SQL' 카테고리의 다른 글

    데이터 타입 상세 소개 - 1  (0) 2021.01.19
    데이터 타입 소개  (0) 2021.01.19
    PL/SQL 식별자 - 1  (0) 2021.01.17
    PL/SQL 구분자  (0) 2021.01.17
    PL/SQL 개념  (0) 2021.01.16

    댓글