본문 바로가기

데이터베이스/ORACLE

5. 문자열 ( VARCHAR, CLOB )

1. 가변 길이 문자형

선언한 크기보다 작은 자료를 저장할 때 남은 공간을 되돌려준다.

1) VARCHAR

  • 사용자가 정의한 데이터 길이 만큼 기억공간 사용.

(사용 형식)

컬럼명 VARCHAR(크기 [BYTE|CHAR])

⇒ 4000 BYTE까지 저장 가능
⇒ [BYTE|CHAR] : 입력 공간의 종류로 Default는 BYTE임

예제)

CREATE TABLE TEMP02 (
  COL1 CHAR(20),
  COL2 VARCHAR(20),
  COL3 VARCHAR(20 CHAR));
  
INSERT INTO TEMP02 VALUES('무궁화','무궁화','무궁화');
INSERT INTO TEMP02 VALUES ('PERSIMON','BANANA','APPLE');

SELECT * FROM TEMP02;

SELECT LENGTHB(COL1)    고정길이,  -- AS "컬럼의 별칭" -- 특수문자들어가면 ""로 묶는다.
       LENGTHB(COL2) AS "가변길이(BYTE)",  -- LENGTHB BYTE크기 출력
       LENGTHB(COL3)    "가변길이(CHAR)" -- AS를 쓰지않아도 되지만 쓰는게 좋다
  FROM TEMP02;

⇒ 쓰고 나머지 반납

2) VARCHAR2

  • VARCHAR와 사용이 동일
  • 오라클에서만 사용되는 데이터 타입(오라클에서 사용 권고)

3) LONG

  • 가변 길이 문자열을 저장할 때 사용
  • 2gb 크기의 자료 저장 가능
  • 한 테이블에 하나의 LONG 타입으로 선언 가능
  • SELECT문의 SELECT절, UPDATE문의 SET절, INSERT문의 VALUES절에서 사용 가능

( 사용 형식 )

컬럼명 LONG; 
-- 사용을 권하지 않는다
-- 한테이블에 한컬럼만 LONG타입을 사용할수있어서 사용하지않는다.

⇒ LONG 타입은 기술지원이 종료됨
⇒ CLOB, NCLOB 사용으로 대치

예제)

CREATE TABLE TEMP03(
  COL1 LONG,
  COL2 CLOB,
  COL3 CLOB);
  

INSERT INTO TEMP03 VALUES('일포스티노','ILPOSTINO','일포스티노');  
  
SELECT * FROM TEMP03; 

SELECT --LEBGTHB(COL1), --2gb라서 길이를 체크할수 없다.
       DBMS_LOB.GETLENGTH(COL2),
       DBMS_LOB.GETLENGTH(COL3)
  FROM TEMP03;

LEBGTHB(COL1), 2gb라서 길이를 체크할 수 없다.

4) CLOB

  • 가변 길이 문자열 저장
  • 최대 4gb 문자열 저장 가능
  • LONG 타입을 개선한 데이터 타입
  • 한 테이블에 여러 개 칼럼에서 CLOB타입 사용이 가능
  • 일부 기능들(길이, 부분 문자열 추출)은 DEMS_LOB API의 지원을 활용

( 사용 형식 )

컬럼명  CLOB; 
--LONG 타입과 마찬가지로 길이를 지정하지않는다. MAX 4gb안에있는 모든자료 가능

예제)

CREATE TABLE TEMP04(
  COL1  CLOB,
  COL2  CLOB,
  COL3  VARCHAR2(4000));
  
INSERT INTO TEMP04 
  VALUES('DM MODELING과 OracleSQL','대전시 중구 대흥동 500',
         '무궁화 꽃이 피었습니다');
  
select * from temp04;

SELECT DBMS_LOB.SUBSTR(COL1,5,3) AS 제목1,
       SUBSTR(COL2,5,3) AS 제목2,
       SUBSTR(COL3,5,3) AS 제목3 
  FROM TEMP04;
-- DEMS_LOB.SUBSTR(부분문자열추출) 자르고자하는문자열, 5글자수(갯수), 3번째에서시작
-- SUBSTR 는 5번째 자리에서 3글자

5) NVARCHAR2, NCLOB

  • 다국적 언어 지원 형식(National)
  • UTF-8, UTF-16 형식의 코드로 변환하여 저장
  • 나머지 기능은 VARCHAR2, CLOB와 동일

 

1._varchar.sql
0.00MB

'데이터베이스 > ORACLE' 카테고리의 다른 글

7. 날짜형 ( DATE )  (0) 2021.03.15
6. 숫자형 ( NUMBER )  (0) 2021.03.15
4. SQL명령 / 자료형 ( CHAR )  (0) 2021.03.15
3. ALTER  (0) 2021.03.15
2. INSERT / DROP/ DELETE  (0) 2021.03.15