Oracle PL/SQL 데이터 유형: 부울, 숫자, 날짜 [예]

PL/SQL 데이터 유형이란 무엇입니까?

데이터 타입 PL/SQL에서 데이터가 저장, 처리 및 처리되는 방법을 정의하는 데 사용됩니다. Oracle 데이터 저장 및 처리 중에. 데이터 유형은 특정 저장 형식 및 범위 제약 조건과 연관되어 있습니다. ~ 안에 Oracle, 각 값이나 상수에는 데이터 유형이 할당됩니다.

PL/SQL과 PL/SQL의 주요 차이점 SQL 데이터 유형은 SQL 데이터 유형이 테이블 열로 제한되는 반면 PL/SQL 데이터 유형은 PL/SQL 블록이에 대한 자세한 내용은 튜토리얼 후반부에서 설명합니다.

다음은 다양한 다이어그램입니다. Oracle PL/SQL 데이터 유형:

PL/SQL 데이터 유형
PL/SQL의 다양한 데이터 유형

PL/SQL CHARACTER 데이터 유형

이 데이터 유형은 기본적으로 영숫자를 문자열 형식으로 저장합니다.

리터럴 값은 CHARACTER 데이터 유형에 할당할 때 항상 작은따옴표로 묶어야 합니다.

이 문자 데이터 유형은 다음과 같이 더 분류됩니다.

  • CHAR 데이터 유형(고정 문자열 크기)
  • VARCHAR2 데이터 유형(가변 문자열 크기)
  • VARCHAR 데이터 유형
  • NCHAR(기본 고정 문자열 크기)
  • NVARCHAR2(기본 변수 문자열 크기)
  • 롱 및 롱 RAW
데이터 형식 기술설명 통사론
이 데이터 유형은 문자열 값을 저장하며 문자열 크기는 선언 시 고정됩니다. 변수.

  • Oracle 변수가 선언된 전체 크기를 차지하지 않으면 변수가 공백으로 채워집니다. 따라서 Oracle 변수가 메모리를 완전히 차지하지 않더라도 선언된 크기에 맞게 메모리를 할당합니다.
  • 이 데이터 유형의 크기 제한은 1~2000바이트입니다.
  • CHAR 데이터 유형은 데이터 크기가 고정된 곳에서 사용하기에 더 적합합니다.
grade CHAR;
manager CHAR (10):= 'guru99';

구문 설명:

  • 첫 번째 선언문에서는 CHAR 데이터형의 'grade' 변수를 최대 크기 1바이트(기본값)로 선언했다.
  • 두 번째 선언문에서는 CHAR 데이터 유형의 변수 'manager'를 최대 크기 10으로 선언하고 99바이트의 값 'guru6'를 할당했습니다. Oracle 이 경우에는 10바이트가 아닌 6바이트의 메모리를 할당합니다.
VARCHAR2 이 데이터 유형은 문자열을 저장하지만 문자열 길이는 고정되어 있지 않습니다.

  • 이 데이터 유형의 크기 제한은 테이블 열 크기의 경우 1~4000바이트이고 변수의 경우 1~32767바이트입니다.
  • 크기는 변수 선언 시 변수별로 정의됩니다.
  • 그러나 Oracle 변수가 정의된 후에만 메모리를 할당합니다. 즉, Oracle 선언 부분에서 변수에 지정된 크기가 아닌 메모리 할당을 위해 변수에 저장된 문자열의 실제 길이만 고려합니다.
  • 메모리 사용량을 최적화하려면 CHAR 데이터 유형 대신 VARCHAR2를 사용하는 것이 좋습니다.
manager VARCHAR2(10) := ‘guru99';

구문 설명:

  • 위 선언문에서는 VARCHAR2 데이터 타입의 'manager' 변수를 최대 10개 크기로 선언하고, 99바이트의 값 'guru6'를 할당했습니다. Oracle 이 경우에는 6바이트의 메모리만 할당합니다.
바르차르 이는 VARCHAR2 데이터 유형과 동의어입니다.

  • 동작 변경을 방지하려면 항상 VARCHAR 대신 VARCHAR2를 사용하는 것이 좋습니다.
manager VARCHAR(10) := ‘guru99';

구문 설명:

  • 위 선언문에서는 VARCHAR 데이터 타입의 'manager' 변수를 최대 크기 10으로 선언하고, 99바이트의 값 'guru6'를 할당했습니다. Oracle 이 경우에는 6바이트의 메모리만 할당합니다. (VARCHAR2와 유사)
NCHAR 이 데이터 유형은 CHAR 데이터 유형과 동일하지만 문자 세트는 국가별 문자 세트를 따릅니다.

  • 이 문자 세트는 NLS_PARAMETERS를 사용하여 세션에 대해 정의할 수 있습니다.
  • 문자 세트는 UTF16 또는 UTF8일 수 있습니다.
  • 크기 제한은 1~2000바이트입니다.
native NCHAR(10);

구문 설명:

  • 위의 선언문은 최대 크기가 10인 NCHAR 데이터 형식의 'native' 변수를 선언합니다.
  • 이 변수의 길이는 문자 집합에 정의된 대로 바이트당 길이 수에 따라 달라집니다.
NVARCHAR2 이 데이터 유형은 VARCHAR2 데이터 유형과 동일하지만 문자 세트는 국가별 문자 세트입니다.

  • 이 문자 세트는 NLS_PARAMETERS를 사용하여 세션에 대해 정의할 수 있습니다.
  • 문자 세트는 UTF16 또는 UTF8일 수 있습니다.
  • 크기 제한은 1~4000바이트입니다.
Native var NVARCHAR2(10):='guru99';

구문 설명:

  • 위의 선언문은 최대 크기가 2인 NVARCHAR10 데이터 형식의 변수 'Native_var'를 선언합니다.
길고 긴 이 데이터 유형은 최대 2GB의 큰 텍스트 또는 원시 데이터를 저장하는 데 사용됩니다.

  • 주로 데이터 사전에서 사용됩니다.
  • LONG 데이터 유형은 문자 세트 데이터를 저장하는 데 사용되는 반면 LONG RAW는 데이터를 이진 형식으로 저장하는 데 사용됩니다.
  • LONG RAW 데이터 유형은 미디어 개체, 이미지 등을 허용하는 반면 LONG은 문자 집합을 사용하여 저장할 수 있는 데이터에만 작동합니다.
Large_text LONG;
Large_raw LONG RAW;

구문 설명:

  • 위의 선언문은 LONG 데이터 형식의 'Large_text' 변수와 LONG RAW 데이터 형식의 'Large_raw' 변수를 선언합니다.

참고 : LONG 데이터 유형을 사용하는 것은 권장되지 않습니다. Oracle. 대신 LOB 데이터 유형을 선호해야 합니다.

PL/SQL NUMBER 데이터 유형

이 데이터 유형은 최대 38자리의 정밀도를 가진 고정 또는 부동 소수점 숫자를 저장합니다. 이 데이터 유형은 숫자 데이터만 포함하는 필드에서 작업하는 데 사용됩니다. 변수는 정밀도와 소수 자릿수 세부 정보로 선언하거나 이 정보 없이 선언할 수 있습니다. 이 데이터 유형에 할당하는 동안 값을 따옴표로 묶을 필요는 없습니다.

A NUMBER(8,2);
B NUMBER(8);
C NUMBER;

구문 설명:

  • 위의 첫 번째 선언은 변수 'A'가 전체 정밀도 8과 2진수 자릿수 XNUMX를 갖는 숫자 데이터 유형임을 선언합니다.
  • 두 번째 선언은 변수 'B'가 소수 자릿수가 없고 전체 정밀도가 8인 숫자 데이터 유형이라고 선언합니다.
  • 세 번째 선언은 가장 일반적이며, 변수 'C'가 정밀도나 소수 자릿수에 제한이 없는 숫자 데이터 유형이라고 선언합니다. 최대 38자리까지 사용할 수 있습니다.

PL/SQL BOOLEAN 데이터 유형

이 데이터 유형은 논리값을 저장합니다. Oracle 부울 데이터 유형은 TRUE 또는 FALSE를 나타내며 주로 조건문에 사용됩니다. 이 데이터 유형을 할당하는 동안 값을 따옴표로 묶을 필요는 없습니다.

Var1 BOOLEAN;

구문 설명:

  • 위에서 변수 'Var1'은 BOOLEAN 데이터 유형으로 선언되었습니다. 코드의 출력은 설정된 조건에 따라 true 또는 false가 됩니다.

PL/SQL 날짜 데이터 유형

이 데이터 유형은 날짜, 월, 연도와 같은 날짜 형식으로 값을 저장합니다. 변수가 날짜와 함께 DATE 데이터 유형으로 정의될 때마다 시간 정보를 보유할 수 있으며 지정되지 않은 경우 기본적으로 시간 정보는 12:00:00으로 설정됩니다. 이 데이터 유형을 할당하는 동안 값은 따옴표로 묶어야 합니다.

표준 Oracle 입력 및 출력의 시간 형식은 'DD-MON-YY'이며 세션 수준에서 NLS_PARAMETERS(NLS_DATE_FORMAT)에 다시 설정됩니다.

newyear DATE:='01-JAN-2015';
current_date DATE:=SYSDATE;

구문 설명:

  • 위에서는 'newyear' 변수를 DATE 데이터 타입으로 선언하고 1월 XNUMX일이라는 값을 할당했습니다.st, 2015년 날짜.
  • 두 번째 선언은 변수 current_date를 DATE 데이터 유형으로 선언하고 현재 시스템 날짜로 값을 할당합니다.
  • 이 두 변수는 모두 시간 정보를 보유합니다.

PL/SQL LOB 데이터 유형

이 데이터 유형은 주로 이미지, 멀티미디어 파일 등과 같은 구조화되지 않은 데이터의 큰 블록을 저장하고 조작하는 데 사용됩니다. Oracle LONG 데이터 유형보다 더 유연하기 때문에 LONG 데이터 유형 대신 LOB를 선호합니다. 다음은 LONG 데이터 유형에 비해 LOB의 몇 가지 주요 장점입니다.

  • LONG 데이터 유형의 테이블은 컬럼 개수가 1개로 제한되지만, LOB 데이터 유형의 테이블은 컬럼 개수에 제한이 없습니다.
  • 데이터 인터페이스 도구는 데이터 복제 중에 테이블의 LOB 데이터 유형을 허용하지만 테이블의 LONG 열을 생략합니다. 이러한 LONG 열은 수동으로 복제해야 합니다.
  • LONG 열의 크기는 2GB인 반면, LOB 열은 최대 128TB까지 저장할 수 있습니다.
  • Oracle 는 최신 요구 사항에 따라 각 릴리스에서 LOB 데이터 유형을 지속적으로 개선하는 반면, LONG 데이터 유형은 일정하고 많은 업데이트를 받지 않습니다.

따라서 LONG 데이터 유형 대신 LOB 데이터 유형을 사용하는 것이 항상 좋습니다. 다음은 다양한 LOB 데이터 유형입니다. 최대 128테라바이트 크기를 저장할 수 있습니다.

  1. 얼룩
  2. CLOB 및 NCLOB
  3. BFILE
데이터 형식 기술설명 통사론
얼룩 이 데이터 유형은 최대 128TB 크기까지 LOB 데이터를 바이너리 파일 형식으로 저장합니다. 이는 문자 집합 세부 정보에 따라 데이터를 저장하지 않으므로 멀티미디어 객체, 이미지 등과 같은 비정형 데이터를 저장할 수 있습니다.
Binary_data BLOB;

구문 설명:

  • 위에서는 'Binary_data' 변수가 BLOB으로 선언되었습니다.
CLOB 및 NCLOB CLOB 데이터 유형은 LOB 데이터를 문자 세트에 저장하는 반면, NCLOB는 데이터를 기본 문자 세트에 저장합니다. 이러한 데이터 유형은 문자 집합 기반 저장소를 사용하므로 문자열에 넣을 수 없는 멀티미디어, 이미지 등과 같은 데이터를 저장할 수 없습니다. 이러한 데이터 유형의 최대 크기는 128TB입니다.
Charac_data CLOB;

구문 설명:

  • 위에서는 변수 'Charac_data'가 CLOB 데이터 타입으로 선언되어 있습니다.
BFILE
  • BFILE은 운영 체제 파일로 데이터베이스 외부에 구조화되지 않은 바이너리 형식의 데이터를 저장하는 데이터 유형입니다.
  • BFILE의 크기는 제한된 운영 체제에 한정되며, 읽기 전용 파일이므로 수정할 수 없습니다.

제품 개요

우리는 다음에서 사용할 수 있는 다양한 단순 데이터 유형을 다뤘습니다. PL / SQL 구문과 함께. 우리는 추가 주제에서 복잡한 데이터 유형에 대해 배울 것입니다.

이 게시물을 요약하면 다음과 같습니다.