たとえば:
BEGIN DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/sales/*.parquet',
format =>
json_object('type' value 'parquet', 'schema' value 'first',
'partition_columns' value
json_array(
json_object('name' value 'country', 'type' value 'varchar2(100)'),
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'varchar2(2)')
)
)
);
END;
/
Parquetデータファイルなど、構造化データファイルのDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEパラメータには、column_listまたはfield_listパラメータは必要ありません。列名およびデータ型は、プロシージャがスキャンする最初のparquetファイルから列に対して導出されます(したがって、すべてのファイルのシェイプが同じである必要があります)。生成された列リストには、オブジェクト名から導出された列が含まれ、これらの列には、partition_columns formatパラメータで指定されたデータ型が含まれます。
パラメータは次のとおりです。
-
table_name: 外部表の名前です。
-
credential_name: 前のステップで作成された資格証明の名前です。
-
file_uri_list: ソース・ファイルURIのカンマ区切りのリスト。このリストには2つのオプションがあります:
-
column_list: 外部表の列名とデータ型のカンマ区切りリスト。リストには、ファイル内の列と、オブジェクト名から導出された列が含まれます。
データファイルが構造化ファイル(Parquet、AvroまたはORC)の場合、column_listは必要ありません。
-
field_list: ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLです。これは、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを示します。
データファイルが構造化ファイル(Parquet、AvroまたはORC)の場合、field_listは必要ありません。
-
format: ソース・ファイルのフォーマットを説明するために指定できるオプションを定義します。partition_columns formatパラメータは、パーティション列の名前を指定します。詳細は、「DBMS_CLOUDパッケージ形式オプション」を参照してください。
ソース・ファイル内のデータが暗号化されている場合は、encryptionフォーマット・オプションを指定してデータを復号化します。データの復号化の詳細は、オブジェクト・ストレージからのインポート中のデータの復号化を参照してください。
この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
パラメータの詳細は、「CREATE_EXTERNAL_PART_TABLEプロシージャ」を参照してください。
サポートされているクラウド・オブジェクト・ストレージ・サービスの詳細は、「DBMS_CLOUD URI形式」を参照してください。