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 | 分断 |
|
Oracleは、引用符なしの列名を暗黙的に大文字にします。 |
| オーダー番号 | 「Ord No」 | オーダー番号 | select "Ord No" |
二重引用符は埋込みのブランクがある場合に必要になり、文字の大/小文字も保持されます |
| __index_key__ | "__index_key__" | __index_key__ | select "__index_key__" |
二重引用符は先頭にアンダースコアがある場合に必要になり、文字の大/小文字を維持することにも表示されます |
| 6Way | "6方向" | 6Way | select "6Way" |
先頭に数字がある場合は二重引用符が必要であり、文字の大/小文字も保持されます |
| CREATE、CREATEまたはCREATE等。(大/小文字の違いがある) PARTITION、PARTITION、PARTITIONなど(Oracleの予約語) | "パーティションの作成" | パーティションの作成 |
|
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コマンドを使用して表の列名を表示します。 - Avro、ORCまたはParquet列名でOracle SQLの予約語が使用されている場合は、その列名をSQL内で参照するときは常に二重引用符で囲む必要があります。詳細は、「Oracle SQLの予約語」を参照してください。