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__" __索引キー__ 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コマンドを使用して表の列名を表示します。

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