DBMS_CLOUD Avro, ORC 및 Parquet 지원

이 섹션에서는 Autonomous Database와 함께 제공되는 DBMS_CLOUD Avro, ORC, Parquet 지원에 대해 다룹니다.

DBMS_CLOUD Avro, ORC, Parquet에 대한 패키지 형식 옵션

DBMS_CLOUD의 format 인수는 소스 파일의 형식을 지정합니다.

format 인수를 지정하는 두 가지 방법은 다음과 같습니다.

format => '{"format_option" : “format_value” }'  

및:

format => json_object('format_option' value 'format_value'))

예를 들면 다음과 같습니다.

format => json_object('type' VALUE 'CSV')

여러 형식 옵션을 지정하려면 값을 ","로 구분합니다.

예:

format => json_object('ignoremissingcolumns' value 'true', 'removequotes' value 'true', 'dateformat' value 'YYYY-MM-DD-HH24-MI-SS', 'blankasnull' value 'true')
형식 옵션 설명 구문

regexuri

regexuri 값이 TRUE로 설정된 경우 클라우드 소스 파일 URI의 파일 이름에 와일드카드 및 정규 표현식을 사용할 수 있습니다.

regexuri 매개변수가 FALSE로 설정된 경우 "*" 및 "?" 문자는 와일드카드 문자로 간주됩니다. regexuri 매개변수가 TRUE로 설정된 경우 "*" 및 "?" 문자는 지정된 정규식 패턴의 일부입니다.

정규 표현식 패턴은 URI의 파일 이름 또는 하위 폴더 경로에 대해서만 지원되며 패턴 일치는 REGEXP_LIKE 함수에서 수행하는 패턴 일치와 동일합니다. 디렉토리 이름에는 정규식 패턴이 지원되지 않습니다.

External Table의 경우 이 옵션은 Object Storage에 있는 파일에 생성된 테이블에서만 지원됩니다.

예:

format => JSON_OBJECT('regexuri' value TRUE)

REGEXP_LIKE 조건에 대한 자세한 내용은 REGEXP_LIKE Condition in Oracle Database 19c SQL Language Reference 또는 Oracle Database 23ai SQL Language Reference를 참조하십시오.

regexuri: True

기본값:False

type

파일 유형을 지정합니다.

type : avro | orc | parquet

schema

스키마를 first 또는 all로 설정하면 외부 테이블 열과 데이터 유형이 Avro, ORC 또는 Parquet 파일 메타데이터에서 자동으로 파생됩니다.

열 이름은 Avro, ORC 또는 Parquet에 있는 열 이름과 일치합니다. 데이터 유형은 Avro, ORC, Parquet 데이터 유형에서 Oracle 데이터 유형으로 변환됩니다. 모든 열이 테이블에 추가됩니다.

first 값은 file_uri_list에 있는 첫번째 Avro, ORC 또는 Parquet 파일의 메타데이터를 사용하여 열 및 해당 데이터 유형을 자동으로 생성하도록 지정합니다. 모든 파일에 동일한 스키마가 있는 경우 first를 사용합니다.

all 값은 file_uri_list에 있는 모든 Avro, ORC 또는 Parquet 파일의 메타데이터를 사용하여 열 및 해당 데이터 유형을 자동으로 생성하도록 지정합니다. 파일에 다른 스키마가 있을 수 있는 경우 all(느림)을 사용합니다.

기본값: column_list가 지정된 경우 schema 값(지정된 경우)이 무시됩니다. column_list가 지정되지 않은 경우 schema 기본값은 first입니다.

: Avro, ORC 또는 Parquet 형식 파일의 경우 schema 형식 옵션을 사용할 수 없으며 DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE 프로시저를 사용하여 분할된 외부 테이블에 대해 column_list 매개변수를 지정해야 합니다.

schema : first | all

DBMS_CLOUD 패키지 Avro와 Oracle 데이터 유형 매핑

Avro 데이터 유형을 Oracle 데이터 유형에 매핑하는 방법을 설명합니다.

주:

맵, 배열 및 구조와 같은 복잡한 유형은 Oracle Database 19c부터 지원됩니다. Avro 복합 유형 사용에 대한 자세한 내용은 DBMS_CLOUD Package Avro, ORC, and Parquet Complex Types을 참조하십시오.
Avro 유형 Oracle 유형
INT NUMBER(10)
LONG 숫자(19)
품질 관리 번호(1)
UTF8 BYTE_ARRAY RAW(2000)
FLT BINARY_FLOAT
DBL BINARY_DOUBLE
DECIMAL(p) 숫자(p)
DECIMAL(p,s) NUMBER(p,s)
DATE DATE
STRING VARCHAR2
TIME_MILLIS VARCHAR2(20바이트)
TIME_MICROS VARCHAR2(20바이트)
TIMESTAMP_MILLIS TIMESTAMP(3)
TIMESTAMP_MICROS TIMESTAMP(6)
목록 VARCHAR2(n) 여기서 "n"은 AVRO ENUM의 가능한 값의 실제 최대 길이입니다.
DURATION RAW(2000)
수정됨 RAW(2000)
NULL VARCHAR2(1) 바이트

Avro 복합 유형 사용에 대한 자세한 내용은 DBMS_CLOUD Package Avro, ORC, and Parquet Complex Types을 참조하십시오.

DBMS_CLOUD 패키지 ORC-Oracle 데이터 유형 매핑

ORC 데이터 유형을 Oracle 데이터 유형에 매핑하는 방법을 설명합니다.

ORC 복합 유형 사용에 대한 자세한 내용은 DBMS_CLOUD Package Avro, ORC, and Parquet Complex Types을 참조하십시오.

ORC 유형 Oracle 유형 추가 정보
배열 VARCHAR2(n) JSON 형식 DBMS_CLOUD 패키지 Avro, ORC 및 Parquet 복합 유형
bigint(64비트) 숫자(19)  
바이너리 BLOB  
부울(1비트) 번호(1)  
char CHAR(n)  
날짜 DATE  
double BINARY_DOUBLE  
float BINARY_FLOAT  
int(32비트) NUMBER(10)  
list VARCHAR2(n) JSON 형식 DBMS_CLOUD 패키지 Avro, ORC 및 Parquet 복합 유형
VARCHAR2(n) JSON 형식 DBMS_CLOUD 패키지 Avro, ORC 및 Parquet 복합 유형
smallint(16비트) 번호(5)  
string VARCHAR2(4000)  
struct VARCHAR2(n) JSON 형식 DBMS_CLOUD 패키지 Avro, ORC 및 Parquet 복합 유형
시간기록 TIMESTAMP  
tinyint(8비트) 번호(3)  
union VARCHAR2(n) JSON 형식 DBMS_CLOUD 패키지 Avro, ORC 및 Parquet 복합 유형
varchar VARCHAR2(n)  

DBMS_CLOUD Oracle 데이터 유형 매핑에 대한 패키지 연회

Parquet 데이터 유형을 Oracle 데이터 유형에 매핑하는 방법을 설명합니다.

주:

맵, 배열 및 구조와 같은 복잡한 유형은 Oracle Database 19c부터 지원됩니다. Parquet 복합 유형 사용에 대한 자세한 내용은 DBMS_CLOUD Package Avro, ORC, and Parquet Complex Types을 참조하십시오.
연회 유형 Oracle 유형
UINT_64 숫자(20)
INT_64 숫자(19)
UINT_32 NUMBER(10)
INT_32 NUMBER(10)
UINT_16 번호(5)
INT_16 번호(5)
UINT_8 번호(3)
INT_8 번호(3)
품질 관리 번호(1)
UTF8 BYTE_ARRAY VARCHAR2(4000바이트)
FLT BINARY_FLOAT
DBL BINARY_DOUBLE
DECIMAL(p) 숫자(p)
DECIMAL(p,s) NUMBER(p,s)
DATE DATE
STRING VARCHAR2(4000)
TIME_MILLIS VARCHAR2(20바이트)
TIME_MILLIS_UTC VARCHAR2(20바이트)
TIME_MICROS VARCHAR2(20바이트)
TIME_MICROS_UTC VARCHAR2(20바이트)
TIMESTAMP_MILLIS TIMESTAMP(3)
TIMESTAMP_MILLIS_UTC TIMESTAMP(3)
TIMESTAMP_MICROS TIMESTAMP(6)
TIMESTAMP_MICROS_UTC TIMESTAMP(6)
TIMESTAMP_NANOS TIMESTAMP(9)

Parquet 복합 유형 사용에 대한 자세한 내용은 DBMS_CLOUD Package Avro, ORC, and Parquet Complex Types을 참조하십시오.

DBMS_CLOUD 패키지 Oracle 데이터 유형-연회 매핑

Oracle 데이터 유형을 Parquet 데이터 유형에 매핑하는 방법을 설명합니다.

Oracle 유형 연회 유형
BINARY_DOUBLE DBL
BINARY_FLOAT FLT
DATE DATE
NUMBER(p,s) DECIMAL(p,s)
숫자(p) DECIMAL(p)
TIMESTAMP(3) TIMESTAMP_MILLIS
TIMESTAMP(3) TIMESTAMP_MILLIS_UTC
TIMESTAMP(6) TIMESTAMP_MICROS
TIMESTAMP(6) TIMESTAMP_MICROS_UTC
TIMESTAMP(9) TIMESTAMP_NANOS
VARCHAR2(4000) STRING

NLS 세션 매개변수

NLS 세션 매개변수 NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMATNLS_NUMERIC_CHARACTERS는 해당 열 유형이 있는 테이블을 질의할 때 날짜, 시간기록, 시간대 형식의 시간기록, 소수점 표시자가 있는 시간기록의 기수 구분자가 표시되는 방법을 정의합니다.

또한 DBMS_CLOUD.EXPORT_DATA를 사용하여 데이터를 익스포트하고 Parquet 출력을 지정하면 Autonomous DatabaseNLS_SESSION_PARAMETERS 테이블에서 해당 매개변수의 값을 읽습니다. Autonomous Database는 이러한 값을 사용하여 Oracle 데이터 유형 DATE 또는 TIMESTAMP을 Parquet 유형으로 변환합니다.

NLS_SESSION_PARAMETERS 매개변수는 RR 형식 마스크(2자 연도 지정)를 지원합니다.

해당 연도에 대한 RR 형식 마스크는 DBMS_CLOUD.EXPORT_DATA를 사용하여 Parquet로 데이터를 익스포트할 때 해당 매개변수에 대해 지원되지 않습니다. parquet로 엑스포트하려고 시도하고 NLS_SESSION_PARAMETERSRR 형식 마스크를 사용하도록 설정된 경우 응용 프로그램 오류가 발생합니다. RR 형식의 기본값은 NLS_TERRITORY 매개변수의 값에 따라 다릅니다.

NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT 또는 NLS_TIMESTAMP_TZ_FORMAT 매개변수 중 하나가 RR 형식 마스크를 사용하는 경우 DBMS_CLOUD.EXPORT_DATA를 사용하여 Parquet에 데이터를 익스포트하려면 형식 값을 지원되는 값으로 변경해야 합니다. 예:

ALTER SESSION SET NLS_DATE_FORMAT = "MM/DD/YYYY";
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF';
ALTER SESSION SET  NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM';
값을 변경한 후 NLS_SESSION_PARAMETERS 뷰를 질의하여 변경사항을 확인할 수 있습니다.
SELECT value FROM NLS_SESSION_PARAMETERS 
       WHERE parameter IN ('NLS_DATE_FORMAT','NLS_TIMESTAMP_FORMAT','NLS_TIMESTAMP_TZ_FORMAT');

NLS_DATE_FORMAT가 설정된 경우 DATE 데이터 유형의 열에 적용됩니다. NLS_TIMESTAMP_FORMAT가 설정된 경우 TIMESTAMP 데이터 유형의 열에 적용됩니다. NLS_TIMESTAMP_TZ_FORMAT가 설정된 경우 TIMESTAMP WITH TIME ZONE 데이터 유형의 열에 적용됩니다.

See Date and Time Parameters in Oracle Database 19c Database Globalization Support Guide or Oracle Database 23ai Database Globalization Support Guide and NLS Data Dictionary Views in Oracle Database 19c Database Globalization Support Guide or Oracle Database 23ai Database Globalization Support Guide for more information.

DBMS_CLOUD 패키지 Avro, ORC, and Parquet 복합 유형

Avro, ORC, Parquet 복합 데이터 유형을 Oracle 데이터 유형에 매핑하는 방법에 대해 설명합니다.

Autonomous Database는 다음과 같은 복잡한 유형을 포함하여 복잡한 데이터 유형을 지원합니다.

  • struct

  • list

  • union

  • 배열

소스 파일 유형을 Avro, ORC, Parquet로 지정하고 소스 파일에 복합 열이 포함된 경우 Autonomous Database 쿼리는 복합 열에 대해 JSON을 반환합니다. 이를 통해 쿼리 결과의 처리가 간소화되고, 파일 유형 및 데이터 유형 전반에서 Oracle의 강력한 JSON 구문 분석 기능을 일관되게 사용할 수 있습니다. 다음 표에서는 Autonomous Database의 복합 유형에 대한 형식을 보여줍니다.

주:

복합 필드는 VARCHAR2 열에 매핑되고 VARCHAR2 크기 제한이 적용됩니다.
유형 Parquet ORC Avro Oracle
List: 값 시퀀스 나열 나열 Array VARCHAR2(JSON 형식)
맵: 단일 키가 있는 객체 목록 VARCHAR2(JSON 형식)
조합: 다른 유형의 값 사용할 수 없음 결합 결합 VARCHAR2(JSON 형식)
객체: 0개 이상의 키-값 쌍 구조 구조 레코드 VARCHAR2(JSON 형식)

ORC, Parquet 또는 Avro 소스 파일에 복합 유형이 포함되어 있는 경우 이러한 공통 복합 유형에 대해 JSON 출력을 쿼리할 수 있습니다. 예를 들어, 다음은 복잡한 유형의 ORC 파일 movie-info.orc를 보여 줍니다. Parquet 및 Avro 소스 파일에 대해서도 동일한 복합 유형 처리가 적용됩니다.

다음 스키마가 포함된 movie-info.orc 파일을 고려해 보십시오.

id    int
original_title string
overview       string
poster_path    string
release_date   string
vote_count     int
runtime        int
popularity     double
genres         array<struct<id:int,name:string>

각 동영상은 genres 배열을 사용하여 여러 genres로 분류됩니다. genres 배열은 structsarray이고 각 항목은 id(int) 및 name(string)를 가집니다. genres 배열은 복합 유형으로 간주됩니다. 다음과 같이 DBMS_CLOUD.CREATE_EXTERNAL_TABLE를 사용하여 이 ORC 파일에 대해 테이블을 만들 수 있습니다.

BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
        table_name =>'movie_info',
        credential_name =>'OBJ_STORE_CRED',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/mytenancy/b/movies/o/movie-info.orc',
        format => '{"type":"orc", "schema": "first"}');
END;
/

External Table을 생성하면 데이터베이스가 ORC 파일의 스키마를 기반으로 열을 자동으로 생성합니다(Avro 또는 Parquet를 사용하는 경우도 동일하게 적용됨). 이 예에서는 DBMS_CLOUD.CREATE_EXTERNAL_TABLE가 다음과 같이 데이터베이스에 테이블을 만듭니다.

CREATE TABLE "ADMIN"."MOVIE_INFO" 
    ( "ID"
      NUMBER(10,0), 
      "ORIGINAL_TITLE"  VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP", 
      "OVERVIEW"        VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP", 
      "POSTER_PATH"     VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP", 
      "RELEASE_DATE"    VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP", 
      "VOTE_COUNT"      NUMBER(10,0), 
      "RUNTIME"         NUMBER(10,0), 
      "POPULARITY"      BINARY_DOUBLE, 
      "GENRES"          VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP"
    )  DEFAULT COLLATION "USING_NLS_COMP"
    ORGANIZATION EXTERNAL 
     ( TYPE      ORACLE_BIGDATA
       DEFAULT DIRECTORY "DATA_PUMP_DIR"
       ACCESS PARAMETERS
       ( com.oracle.bigdata.credential.name=OBJ_STORE_CRED
         com.oracle.bigdata.fileformat=ORC
   )
       LOCATION
        (
      'https://objectstorage.us-phoenix-1.oraclecloud.com/n/mytenancy/b/movies/o/movie-info.orc'
           )
     )
   REJECT LIMIT UNLIMITED 
   PARALLEL;
 )

이제 동영상 데이터를 쿼리할 수 있습니다.

SELECT original_title, release_date, genres 
     FROM movie_info 
     WHERE release_date > '2000'
     ORDER BY original_title;

그러면 다음 출력이 생성됩니다.


original_title              release_date   genres
(500) Days of Summer        2009           [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},{"id":17,"name":"Horror"},{"id":19,"name":"Western"},{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
10,000 BC                   2008           [{"id":6,"name":"Comedy"}]
11:14                       2003           [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
127 Hours                   2010           [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
13 Going on 30              2004           [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
1408                        2007           [{"id":45,"name":"Sci-Fi"},{"id":6,"name":"Comedy"},{"id":17,"name":"Horror"},{"id":6,"name":"Comedy"},{"id":18,"name":"War"}]

복합 유형 genres가 JSON 배열로 반환됩니다.

JSON 데이터의 유용성을 높이기 위해 Oracle의 JSON 함수를 사용하여 열을 변환할 수 있습니다. 예를 들어, JSON "." 표기법과 JSON_TABLE와 같은 보다 강력한 변환 함수를 사용할 수 있습니다.

"." 표기법에 대한 자세한 내용은 Oracle Database 19c JSON Developer's GuideSimple Dot-Notation Access to JSON Data 또는 Oracle Database 23ai JSON Developer's Guide를 참조하십시오.

JSON_TABLE에 대한 자세한 내용은 Oracle Database 19c JSON Developer's GuideSQL/JSON Function JSON_TABLE 또는 Oracle Database 23ai JSON Developer's Guide를 참조하십시오.

다음 예제는 배열의 각 값을 가져와서 값을 결과 집합의 행으로 바꾸는 테이블 query를 보여줍니다.
SELECT original_title, release_date, m.genre_name, genres
    FROM movie_info mi,
       JSON_TABLE(mi.genres, '$.name[*]'
        COLUMNS (genre_name VARCHAR2(25) PATH
      '$')                 
                 ) AS m
 WHERE rownum < 10;

JSON_TABLE는 배열의 각 값에 대한 행을 생성하고, 포괄 조인을 생각하며, 구조체를 구문 분석하여 장르의 이름을 추출합니다. 그러면 다음 출력이 생성됩니다.


original_title                   release_date         genre_name        genres
(500) Days of Summer             2009                 Drama             [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 Comedy            [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 Horror            [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 Western           [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 War               [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 Romance           [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
10,000 BC                        2008                 Comedy            [{"id":6,"name":"Comedy"}]
11:14                            2003                 Family            [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
11:14                            2003                 Thriller          [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
127 Hours                        2010                 Comedy            [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
127 Hours                        2010                 Drama             [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
13 Going on 30                   2004                 Romance           [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30                   2004                 Comedy            [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30                   2004                 War               [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30                   2004                 Drama             [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]

DBMS_CLOUD 패키지 Avro, ORC, and Parquet - Oracle 열 이름 매핑

Avro, ORC, Parquet 열 이름이 Oracle 열 이름으로 변환되는 방법에 대한 규칙을 설명합니다.

다음은 Avro, ORC, Parquet 열 이름에 대해 지원되지만 External Table의 Oracle SQL 참조에 대해 큰 따옴표를 사용해야 할 수 있습니다. 따라서 사용하기 쉽고 열 이름을 참조할 때 큰 따옴표를 사용하지 않으려면 가능한 경우 Avro, ORC, and Parquet 열 이름에 다음을 사용하지 마십시오.

  • 포함된 공백

  • 선행 숫자

  • 선행 밑줄

  • Oracle SQL 예약어

다음 표에서는 다양한 유형의 Avro, ORC, Parquet 열 이름 및 External Table의 Oracle 열 이름에 열 이름을 사용하는 규칙을 보여 줍니다.

Avro, ORC, or Parquet 이름 CREATE TABLE 이름 Oracle 카탈로그 적합한 SQL 참고
부품, 부품 또는 부품 부품, 부품, 부품 부분

select part

select Part

select paRt

select PART

Oracle은 따옴표로 묶이지 않은 열 이름을 암시적으로 대문자
주문 번호 "주문 번호" 주문 번호 select "Ord No" 공백이 포함된 경우 큰 따옴표가 필요하며, 문자 대소문자도 유지됩니다.
__index_key__ "__index_key__" __index_key__ select "__index_key__" 문자 대소문자를 보존하는 선행 밑줄이 있는 경우 큰 따옴표가 필요합니다.
6Way "6Way" 6Way select "6Way" 문자 대소문자를 보존하는 선행 숫자 자릿수가 있는 경우 큰 따옴표가 필요합니다.
생성, 생성 또는 CREATE 등(대소문자 구분 없이) PARTITION, PARTITION, PARTITION 등(Oracle Reserved 단어의 경우) "분할 영역 생성" 분할 영역 생성

select "CREATE"

select "PARTITION"

Oracle SQL 예약어는 큰 따옴표로 묶어야 합니다. 대문자로 강제 적용되지만 SQL의 어디에나 사용할 때는 항상 큰 따옴표를 사용해야 합니다.
ROWID, ROWID, ROWid 등(ROWID의 경우 주 참조) rowid  

select "rowid"

select "Rowid"

select "ROWid"

select "rowid"

ROWID의 경우 ROWID의 혼합 또는 소문자 변형은 대소문자를 보존하며 항상 이중 따옴표로 묶고 원래의 대소문자 변형을 사용해야 합니다. 테이블의 Oracle ROWID와 고유의 충돌로 인해 대문자 ROWID를 지정하면 행이 자동으로 소문자 "ROWID"로 저장되며 참조할 때는 항상 큰 따옴표로 묶어야 합니다.

참고:

  • 일반적으로 External Table의 열 이름은 큰따옴표 없이 참조될 수 있습니다.

  • 포함된 공백이 없으면 열 이름에 선행 밑줄("_") 또는 선행 숫자 숫자("0" ~ "9")가 없으면 열 이름의 원래 대소문자가 보존되며, 항상 큰 따옴표로 참조되고 Avro, ORC 또는 Parquet 열 이름의 원래 대소문자(위쪽, 아래쪽 또는 혼합 대소문자)를 사용해야 합니다.

  • DBMS_CLOUD.CREATE_EXTERNAL_TABLE를 사용하여 avro, orc 또는 parquet로 지정된 형식으로 외부 테이블을 생성한 후 SQL*Plus에서 DESCRIBE 명령을 사용하여 테이블의 열 이름을 확인합니다.

  • Oracle SQL 예약어가 Avro, ORC 또는 Parquet 열 이름에 사용되는 경우 SQL의 어느 곳에서나 참조될 때는 항상 큰 따옴표를 사용해야 합니다. 자세한 내용은 Oracle SQL Reserved Words in Oracle Database 23ai SQL Language Reference 또는 Oracle Database 23ai SQL Language Reference를 참조하십시오.