DBMS_CLOUDパッケージAvro、ORCおよびParquetからOracle列名へのマッピング

Avro、ORCおよびParquet列名をOracleの列名に変換する方法のルールについて説明します。

Avro、ORCおよびParquet列名については次のものです。ただし、外部表におけるOracle SQL参照では二重引用符の使用が必要になる場合があります。したがって、列名の参照時に二重引用符を使用しないようにし、可能であればAvro、ORCおよびParquet列名で次を使用しないでください:

  • 埋め込まれた空白

  • 先頭の数字

  • 先頭のアンダースコア

  • Oracle SQLの予約語

次の表に、Avro、ORCおよびParquetの列名の様々なタイプと、外部表内でOracle列名の列名を使用するためのルールを示します。

Avro、ORCまたはParquet名 CREATE TABLE名 Oracleカタログ 有効なSQL ノート
part、PartまたはPART part、Part、PART 分断

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、CREATEまたはCREATEなどの。(大/小文字の違いがある) PARTITION、PARTITION、PARTITIONなど(Oracleの予約語) 「パーティションの作成」 パーティションの作成

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として格納されるため、参照時には常に二重引用符で囲む必要があります。
ノート

  • 一般に、外部表の列名は二重引用符なしで参照できます。

  • 列名に埋込みの空白、先頭のアンダースコア(_")または先頭の数字("0"から"9")が含まれていなければ、列名の元の大文字/小文字が維持され、常に二重引用符で囲んで、Avro、ORCまたはParquet列名の元の大文字、小文字または混合)を使用して参照する必要があります。

  • DBMS_CLOUD.CREATE_EXTERNAL_TABLEを使用してavroorcまたはparquetとして指定された形式で外部表を作成した後、SQL*PlusのDESCRIBEコマンドを使用して表の列名を表示します。

  • Avro、ORCまたはParquet列名にOracle SQLの予約語が使用される場合、SQLの任意の場所で参照されるときは常に二重引用符で囲まれる必要があります。詳細はOracle SQLの予約語を参照してください。