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 CATALOG | 有効なSQL | ノート |
---|---|---|---|---|
part、PartまたはPART | part、Part、PART | PART |
|
Oracleでは引用符で囲まれていない列名を暗黙的に大文字にします |
Ord No | "Ord No" | Ord No | select "Ord No" |
空白が埋め込まれている場合は二重引用符が必要であり、文字の大/小文字も保持されます |
__index_key__ | "__index_key__" | __index_key__ | select "__index_key__" |
先頭にアンダースコアがある場合は二重引用符が必要であり、文字の大/小文字も保持されます |
6Way | "6Way" | 6Way | select "6Way" |
先頭に数字がある場合は二重引用符が必要であり、文字の大/小文字も保持されます |
create、CreateまたはCREATEなど。(大/小文字の違いがある) partition、PartitionまたはPARTITIONなど(Oracleの予約語の場合) | "CREATE" "PARTITION" | CREATE PARTITION |
|
Oracle SQLの予約語は二重引用符で囲む必要があります。 これらは強制的に大文字になりますが、SQL内の任意の場所で使用する場合は常に二重引用符で囲む必要があります |
rowid、Rowid、ROWidなど(ROWIDについては、「ノート」を参照) | rowid |
|
ROWIDの場合、ROWIDの大/小文字混在または小文字のバリエーションでは大/小文字が保持されるため、常に二重引用符で囲み、元の大/小文字のバリエーションを使用する必要があります。 表のOracle ROWIDに固有の競合のため、大文字のROWIDを指定すると、自動的に小文字のrowidとして格納され、参照時に常に二重引用符で囲む必要があります。 |
ノート:
-
一般的に、外部表の列名は二重引用符なしで参照できます。
-
埋め込まれた空白、先頭のアンダースコア(_)または先頭の数字(0-9)が列名に含まれている場合を除き、列名の元の大/小文字の区別は保持され、常に二重引用符で囲み、Avro、ORCまたはParquet列名の元の大/小文字の区別(大文字、小文字または混合)を使用して参照する必要があります。
-
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
を使用してavro
、orc
またはparquet
として指定された形式で外部表を作成した後、SQL*PlusのDESCRIBE
コマンドを使用して表の列名を表示します。 -
Oracle SQLの予約語が「Avro、ORCまたはParquet」の列名で使用されている場合、SQLのどこかで参照されるときは常に二重引用符で囲む必要があります。 詳細については、「Oracle SQL予約語」を参照してください。