DATABASE/SQL, PL-SQL
PL/SQL 식별자 - 1
devstep88
2021. 1. 17. 21:53
식별자(Identifier)
PL/SQL 프로그램 구성 요소의 이름을 의미.
구성요소 | 설명 |
상수 | 한 번 지정된 값을 바꿀 수 없는 값 |
변수 | 할당된 값을 변경시킬 수 있는 값 |
커서 | 데이터베이스에 지정된 값을 접근하기 위한 구조 |
예외 | PL/SQL 실행 중에 발생하는 예외 상항 |
레이블 | PL/SQL의 블록 또는 문장에 대한 이름 |
서브프로그램 | 호출 가능한 함수(Function)와 프로시저(Procedure) |
트리거 | 특정 이벤트 발생 시 데이터베이스에 의해 자동적으로 호출되는 저장 서브프로그램 |
패키지 | 타입, 상수, 변수, 예외, 커서, 서브프로그램 등을 모듈화한 저장 서브프로그램 |
객체 타입 | 관계형 DB에 객체 지향 프로그래밍을 가능하게 하는 프로그램 요소 |
예약어 | 내부적으로 사용하기 위해 예약된 단어 |
키워드 | 오라클 PL/SQL 문법에서 사용되는 핵심 단어 |
PL/SQL 프로그램의 모든 구성 요소들은 각각을 유일하게 식별할 수 있도록 하는 식별자를 가진다.
당연한 말이지만 식별자를 구성하는 문자 중 하나라도 다르면 서로 다른 식별자이다.
단 식별자명을 큰따옴표로 감싼 경우가 아니라면 대소문자를 구별하지 않는다는 데 주의해야 한다.
식별자 사이에는 최소한 하나의 공백 문자나 구분자가 와야 한다.
-PL/SQL 예약어
시작 문자 | 예약어 |
A | ALL, ALTER, AND, ANY, AS, ASC, AT |
B | BEGIN, BETWEEN, BY |
C | CASE, CHECK, CLUSTERS. CLUSTER, COLAUTH, COLUMNS, COMPRESS, CONNECT, CRASH, CREATE, CURSOR |
D | DECLARE, DEFAULT, DESC, DISTINCT, DROP |
E | ELSE, END, EXCEPTION. EXCLUSIVE |
F | FETCH, FOR, FROM, FUNCTION |
G | GOTO, GRANT, GROUP |
H | HAVING |
I | IDENTIFIED, IF, IN, INDEX, INDEXES, INSERT, INTERSECT, IS, INTO |
L | LIKE, LOCK |
M | MINUS, MODE |
N | NOCOMPRESS, NOT, NOWAIT, NULL |
O | OF, ON, OPTION. OR, ORDER, OVERLAPS |
P | PROCEDURE, PUBLIC |
R | RESOURCE, REVOKE |
S | SELECT, SHARE, SIZE, SQL, START, SUBTYPE |
T | TABAUTH, TABLE, THEN, TO, TYPE |
U | UNION, UNIQUE, UPDATE |
V | VALUES, VIEW, VIEWS |
W | WHEN, WHERE, WITH |
-PL/SQL 키워드 목록
시작 문자 | 키워드 |
A | A, ADD, ACCESSIBLE, AGENT, AGGREGATE, ARRAY, AUTHID, AVG, ATTRIBUTE |
B | BFILE_BASE, BINARY, BLOB_BASE, BLOCK, BODY, BOTH, BOUND, BULK, BYTE |
C | C, CALL, CALLING, CASCADE, CHAR, CHAR_BASE, CHARACTER, CHARSET, CHARSETFORM, CHARSETID, CLONE, CLOB_BASE, CLOSE, COLLECT, COMMIT, COMMENT, COMMITTED, COMPILED, CONSTANT, CONSTRUCTOR, CONTEXT, CONTINUE, CONVERT, COUNT, CREDENTIAL, CURRENT, CUSTOMDATUM |
D | DANGLING, DATA. DATE. DATE_BASE. DAY. DEFINE, DELETE, DETERMINISTIC, DIRECTORY, DOUBLE, DURATION |
E | ELEMENT, ELSIF, EMPTY, ESCASE, EXCEPT, EXCEPTIONS, EXECUTE, EXISTS, EXIT, EXTERNAL |
G | GENERAL |
H | HASH, HEAP, HIDDEN, HOUR |
I | IMMEDIATE, INCLUDING, INDICATOR, INDICES, INFINITE, INSTANTIABLE, INT, INTERFACE, INTERVAL, INVALIDATE, ISOLATION |
J | JAVA |
L | LANGUAGE, LARGE, LEADING, LENGTH, LEVEL, LIBRARY, LIKE2, LIKE4, LIKEC. LIMIT, LIMITED, LOCAL, LONG, LOOP |
M | MAP, MAX, MAXLEN, MEMBER, MERGE, MIN. MINUTE, MOD, MODIFY, MONTH, MULTISET |
N | NAME, NAN, NATIONAL, NATIVE, NCHAR, NEW, NOCOPY, NUMBER_BASE |
O | OBJECT, OCICOLL, OCIDATE, OCIDATETIME, OCIDURATION, OCIINTERVAL, OCILOBLOCATOR, OCINUMBER, OCIRAW, OCIREF, OCIREFCURSOR, OCIROWID, OCISTRING, OCITYPE, OLD, ONLY, OPAQUE, OPEN, OPERATOR, ORACLE, ORADATA, ORGANIZATION, ORLANY, ORLVARY, OTHERS. OUT, OVERRIDING |
P | PACKAGE. PARALLEL_ENABLE, PARAMETER, PARAMETERS. PARENT, PARTITION, PASCAL, PIPE, PIPELINED, PLUGGABLE, PRAGMA, PRECISION, PRIOR, PRIVATE |
R | RAISE, RANGE, RAW, READ, RECORD, REF, REFERENCE, RELIES_ON, REM, REMAINDER, RENAME, RESULT, RESULT_CACHE, RETURN, RETURNING, REVERSE, ROLLBACK, ROW |
S | SAMPLE, SAVE, SAVEPOINT, SB1, SB2, SB4, SECOND, SEGMENT, SELF, SEPARATE, SEQUENCE, SERIALIZABLE, SET, SHORT, SIZE_T, SOME, SPARSE, SQLCODE, SQLDATA, SQLNAME, SQLSTATE, STANDARD, STATIC, STDDEV, STORED, STRING, STRUCT, STYLE, SUBMULTISET, SUBPARTITION, SUBSTITUTABLE, SUM, SYNONYM |
T | TDO, THE, TIME, TIMESTAMP, TIMEZONE_ABBR, TIMEZONE_HOUR, TIMEZONE_MINUTE, TIMEZONE_REGION, TRAILING, TRANSACTION, TRANSACTIONAL, TRUSTED |
U | UB1, UB2, UB4, UNDER, UNPLUG, UNSIGNED, UNTRUSTED, USE, USING |
V | VALIST, VALUE, VARIABLE, BARIANCE, VARRAY, VARYING, VOID |
W | WHILE, WORK, WRAPPED, WRITE |
Y | YEAR |
Z | ZONE |
사전 정의 식별자는 오라클에 내장된 STANDARD라는 패키지에 선언된 식별자를 말한다.
STANDARD 패키지는 오라클에 내장된 특별한 패키지인데 오라클의 기본 네임스페이스이기 때문에 이 패키지에 선언된 식별자는 'STANDARD'을 접두어로 사용하지 않아도 사용 가능하다.
사전 정의 식별자는 다음 쿼리를 사용하여 조회 가능하다.(사용자 권한에 따라 결과 달라짐)
SELECT TYPE_NAME
FROM ALL_TYPES
WHERE OWNER IS NULL
AND PREDEFINED = 'YES';
사용자 정의 식별자는 기존에 존재하지 않으며 프로그래머가 정의한 식별자를 말한다.
사용자 정의 식별자는 큰따옴표를 사용하지 않는 일반 사용자 정의 식별자와 큰따옴표로 식별자를 감싼 두 가지 사용법이 있으며 두 경우에 따라 사용법이 달라진다.