2. 기본
구분자>
식별자 >
상수, 변수, 예외, 커서, 커서 변수, 하위 프로그램 및 패키지를 포함하여 PL/SQL 프로그램 항목과 단위 이름을 지정하는데 사용
예)
X
t2
phone#
credit_limit
LastName
oracle$number
식별자는 한 문자나 여러 문자, 숫자, 달러 기호($), 밑줄, 번호 기호( # )로 구성됩니다.
다음 예와 같이 하이픈, 슬래시, 공백과 같은 다른 문자는 허용되지 않습니다.
mine&yours -- illegal ampersand
debit-amount -- illegal hyphen
on/off -- illegal slash
user id -- illegal space
다음 예와 같이 달러 기호, 밑줄 및 번호 기호를 중간과 끝에 사용할 수 있습니다.
money$$$tree
SN##
try_again_
대문자, 소문자 또는 대소문자를 모두 사용하여 식별자를 작성할 수 있습니다. PL/SQL에서는 문자열과 문자 리터럴 안에 사용될 경우 외에는 대소문자를 구분하지 않으므로 다음 예와 같이 대소문자 표기만 다른 식별자는 동일한 것으로 간주합니다.
lastname
LastName -- same as lastname
LASTNAME -- same as lastname and LastName
식별자의 길이는 30자를 초과할 수 없습니다.
문자열 리터럴 >
문자 값은 식별자로 표현하거나 문자열 리터럴로 명시적으로 작성될 수 있습니다. 문자열 리터럴은 인접한 0이나 다른 문자를 작은 따옴표로 묶는 것입니다.
예)
’Hello, world!’
’XYZ Corporation’
’10-NOV-91’
’He said ”Life is like licking honey from a thorn.”’
’$1,000,000’
널 문자열(’’)을 제외한 모든 문자열 리터럴은 CHAR 데이터 유형입니다. 작은 따옴표(’)는 문자열 리터럴의 구분자로 사용되며 문자열 안에 작은 따옴표를 표시하는 방법은 다음 예와 같이 작은 따옴표 두 개를 사용하여 나타냅니다.
’Don’’t leave without saving your work.’
PL/SQL 문자열 리터럴에서는 대소문자를 구분합니다. 예를 들어, 다음 두 리터럴은 서로 다른 것으로 간주됩니다.
’baker’
’Baker’
Boolean 리터럴 >
Boolean 리터럴은 미리 정의된 값인 TRUE, FALSE, NULL 을 의미합니다. (NULL은 빠진 값, 알 수 없는 값 또는 적용할 수 없는 값을 나타냅니다.) Boolean 리터럴은 문자열이 아닌 값이라는 점에 주의.
예를 들어, TRUE는 숫자 25와 마찬가지로 하나의 값입니다.
주석 >
단일 행 : --
복수 : /* */
내장 데이터 유형 >
1. 숫자 유형
1) BINARY_INTEGER
- 부호가 붙은 정수를 저장합니다. BINARY_INTEGER 데이터 유형의 크기 범위는 - 2147483647 . .2147483647입니다.
2) NUMBER
- 실제로 임의 크기의 고정 또는 부동 소수점 숫자를 저장합니다.
- NUMBER[(precision,scale)]
; 자리수의 총 개수를 나타내는 전체 자리수와 소수점의 오른쪽에 있는 자리수를 나타내는 소수점 이하 자리수를 지정
- 소수점이 없는 정수를 선언하려면 다음 형식을 사용합니다.
NUMBER(precision) -- same as NUMBER(precision,0)
3) PLS_INTEGER
- 부호가 붙은 정수를 저장하려면 P L S I N T E G E R 데이터 유형을 사용합니다. PLS_INTEGER 데이터 유형의 크기 범위는 -2147483647 . . 2147483647입니다.
2. 문자 유형
1) CHAR
- CHAR 데이터 유형을 사용하여 고정 길이의 문자 데이터를 저장합니다.
- 최대 길이 32767바이트까지 지정
CHAR[(maximum_length)]
- 주의 할 점은 최대 길이는 문자가 아니라 바이트로 지정한다는 점
2) LONG과 LONG RAW
- LONG 데이터 유형은 가변 길이 문자열을 저장하는데 사용됩니다.
- LONG RAW 데이터 유형은 이진 데이터나 바이트 문자열을 저장하는데 사용됩니다.
- LONG 열에는 텍스트, 문자 배열 또는 짧은 문서까지 저장할 수 있습니다. UPDATE ,INSERT 및 (대부분의) SELECT 문에서는 LONG 열을 참조할 수 있지만 표현식, SQL함수 호출 또는 WHERE, GROUP B Y 및 CONNECT BY 와 같은 특정 SQL 절에서는 LONG열을 참조할 수 없습니다.
3) RAW
- 이진 데이터나 바이트 문자열을 저장합니다. 예를 들어,RAW 변수는 그래픽 문자나 디지털화된 그림을 저장할 수 있습니다.
- RAW(maximum_length)
4) ROWID와 UROWID
- 모든 데이터베이스 테이블에는 ROW I D라는 이진 값을 저장하는 ROWID 의사 열이 있습니다. 각 ROWID는 행의 저장 영역 주소를 나타냅니다. 물리적 ROWID는 일반 테이블의 한 행을 나타내고 논리적 ROWID는 인덱스 구성 테이블의 한 행을 나타냅니다.
- 형식은 네 부분으로 구성됩니다.
OOOOOOFFFBBBBBBRRR
■ O O O O O O : 데이터베이스 세그먼트를 식별하는 데이터 객체 번호. 테이블 클러스터와 같은 세그먼트에 있는 스키마 객체는 동일한 데이터 객체 번호를 갖습니다.
■ F F F : 행이 포함된 데이터 파일을 식별하는 파일 번호. 각 파일 번호는 데이터베이스 내에서는 고유합니다.
■ B B B B B B : 행이 포함된 데이터 블록을 식별하는 블록 번호. 블록 번호는 테이블스페이스가 아닌 데이터 파일과 관련되어 있으므로 두 행이 동일한 테이블스페이스에 있으나 서로 다른 데이터 파일에 있는 경우 블록 번호가 동일할 수 있습니다.
■ RRR: 블록 내의 행을 식별하는 행 번호
5) VARCHAR2
- 가변 길이의 문자 데이터를 저장합니다. 데이터가 내부적으로 표시되는 방법은 데이터베이스 문자 집합에 따라 다릅니다.
3. NLS 문자 유형
1) NCHAR
- NCHAR 데이터 유형을 사용하여 고정 길이(필요한 경우 공백을 채워 넣음)의 NLS 문자 데이터를 저장합니다.
- 최대 길이 32767바이트까지 지정할 수 있는 선택 매개변수를 가집니다. NCHAR 데이터 유형의 구문은 다음과 같습니다.
NCHAR[(maximum_length)]
2) NVARCHAR2
- 가변 길이의 NLS 문자데이터를 저장하려면 NVARCHAR2 데이터 유형을 사용합니다.
- 최대 길이 32767바이트까지 지정할 수 있는 필수 매개변수를 가지며 구문은 다음과 같습니다.
NVARCHAR2(maximum_length)
4. LOB 유형
L O B( Large Objects) 데이터 유형인 BFILE, BLOB, CLOB 및 NCLOB는 텍스트, 그래픽 이미지, 비디오 클립 및 사운드 웨이브폼 등 구조화되지 않은 데이터 블록을 최대 4 GB까지 저장하며 효율적이고, 임의적이며, 세분화된 데이터 액세스가 가능합니다.
LOB 유형은 데이터에 대한 임의적 액세스를 지원하지만 L O N G은 순차적 액세스만 지원합니다.
1) BFILE
- BFILE 데이터 유형은 데이터베이스 외부의 운영 체제 파일에 대형 이진 객체를 저장하는데 사용됩니다.
- 읽기 전용이므로 수정할 수 없습니다.
- 크기는 시스템에 따라 다르지만 4 G B ( 2 * * 3 2 -1바이트)를 초과할 수 없습니다.
- B F I L E은 트랜잭션에서는 사용되지 않고 복구가 불가능하며 복제될 수 없습니다.
- 열수 있는 최대 BFILE 수는 시스템에 따라 Oracle 초기화 매개변수 SESSION_MAX_OPEN_FILES에 의해 설정됩니다.
2) BLOB
- BLOB 데이터 유형은 데이터베이스 행 안이나 밖에 있는 대형 이진 객체를 저장하는데 사용됩니다. 모든 BLOB 변수는 대형 이진 객체를 가리키는 로케이터를 저장합니다.
- BLOB의 최대 크기는 4 G B입니다.
- 트랜잭션에 사용되며 복구와 복제가 가능합니다.
3) CLOB
- CLOB 데이터 유형은 행 안이나 행 밖에서 데이터베이스에 있는 싱글 바이트 문자 데이터의 대형 블록을 저장하는데 사용됩니다.
- CLOB의 최대 크기는 4 G B입니다.
- 트랜잭션에 사용되며 복구와 복제가 가능합니다.
4) NCLOB
- NCLOB 데이터 유형은 행 안이나 행 밖에서 데이터베이스에 있는 여러 바이트의 NCHAR 데이터 대형 블록을 저장하는데 사용됩니다. 고정 너비와 가변 너비의 문자 집합이 모두 지원됩니다. 모든 NCLOB 변수는 NCHAR 데이터 대형 블록을 가리키는 로케이터를 저장합니다.
- NCLOB의 최대 크기는 4 G B입니다.
- NCLOB는 트랜잭션에 사용되며 복구와 복제가 가능합니다.
5. 기타 유형
1) BOOLEAN
- BOOLEAN 데이터 유형은 매개변수를 가질 수 없으며 BOOLEAN 변수에는TRUE, FALSE 및 NULL 값만 할당될 수 있습니다.
2) DATE
- 고정된 길이의 날짜/시간 값을 저장하는데 사용됩니다. DATE값에는 자정부터 초 단위 시간이 포함됩니다. 날짜 부분의 기본값은 현재 달의 1일이고 시간 부분의 기본값은 자정입니다.
- 기본 날짜 형식은 Oracle 초기화 매개변수 NLS_DATE_FORMAT에 의해 설정
- PL / SQL에서는 산술 표현식에서 정수 리터럴을 일로 해석합니다. 예를 들어, SYSDATE + 1은 내일입니다.