オブジェクトおよびファイル用のDBMS_CLOUD
前提条件
開発者は、Oracle Public Cloud、マルチクラウドまたはExadata Cloud@CustomerにデプロイされたAutonomous DatabaseでDBMS_CLOUDプロシージャを使用できます。
デプロイメントの選択肢に応じて、Amazon S3、Azure Blob StorageおよびGoogle Cloud Storageサービス・プロバイダでDBMS_CLOUDプロシージャを使用するには、次の前提条件を満たす必要があります。
- Oracle Cloud InfrastructureドキュメンテーションのNAT Gatewayの作成の説明に従って、Autonomous Databaseリソースが存在するVirtual Cloud Network (VCN)でNATゲートウェイを作成します。
- NATゲートウェイを作成したら、Autonomous Databaseリソースが存在する各サブネット(VCN内)にルート・ルールおよびエグレス・セキュリティ・ルールを追加して、これらのリソースがゲートウェイを使用してAzure ADインスタンスから公開キーを取得できるようにします:
- サブネットの「サブネットの詳細」ページに移動します。
- 「Subnet Information」タブで、サブネットの「Route Table」の名前をクリックして、その「Route Table Details」ページを表示します。
- 既存のルート・ルールの表で、次の特性を持つルールがすでに存在します:
- 宛先: 0.0.0.0/0
- ターゲット・タイプ: NAT Gateway
- ターゲット: VCN内に作成したNATゲートウェイの名前
このようなルールが存在しない場合は、「ルート・ルールの追加」をクリックし、これらの特性を持つルート・ルールを追加します。
- サブネットの「サブネットの詳細」ページに戻ります。
- サブネットの「セキュリティ・リスト」表で、サブネットのセキュリティ・リストの名前をクリックして、その「セキュリティ・リストの詳細」ページを表示します。
- サイド・メニューの「リソース」で、「エグレス・ルール」をクリックします。
- 既存のエグレス・ルールの表で、次の特性を持つルールがすでに存在します:
- 宛先タイプ: CIDR
- 宛先: 0.0.0.0/0
- IPプロトコル: TCP
- ソース・ポート範囲: 443
- 宛先ポート範囲: すべて
そのようなルールが存在しない場合は、「エグレス・ルールの追加」をクリックし、これらの特性を持つエグレス・ルールを追加します。
環境のHTTPプロキシ設定では、データベースがクラウド・サービス・プロバイダにアクセスできるようにする必要があります。
ノート:
HTTPプロキシを含むネットワーク構成は、Exadataインフラストラクチャが「アクティブ化が必要」状態になるまで編集できます。いったんアクティブ化すると、それらの設定は編集できません。すでにプロビジョニングされているExadataインフラストラクチャのHTTPプロキシを設定するには、My Oracle Supportでサービス・リクエスト(SR)が必要です。詳細は、My Oracle Supportでのサービス・リクエストの作成を参照してください。
オブジェクトおよびファイル用のDBMS_CLOUDサブプログラム
DBMS_CLOUDパッケージ内のオブジェクト管理およびファイル管理用のサブプログラム。
サブプログラム | 説明 |
---|---|
このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリ内のファイルから、既存のSODAコレクションにデータをロードします。 | |
このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリ内のファイルからAutonomous Databaseの既存の表にデータをロードします。 | |
このプロシージャは、format パラメータのtype を値orc 、parquet またはavro に設定すると、クラウドのORC、ParquetまたはAvroファイルから、またはディレクトリ内のORC、ParquetまたはAvroファイルから、既存のAutonomous Database表にデータをロードします。
テキスト・ファイルと同様に、データはソースのORC、ParquetまたはAvroファイルから既存の内部表にコピーされます。 |
|
このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットから別のクラウド・オブジェクト・ストレージ・バケットにファイルをコピーします。 | |
このプロシージャでは、クラウド内のファイルまたはディレクトリ内のファイルに外部表を作成します。これにより、Autonomous Databaseから外部データに対する問合せを実行できます。 | |
このプロシージャは、format パラメータのtype を値parquet 、orc またはavro に設定することで、クラウドまたはディレクトリ内のParquet、ORCまたはAvroフォーマット・ファイルを使用して外部表を作成します。
これにより、Autonomous Databaseから外部データに対する問合せを実行できます。 |
|
このプロシージャは、オブジェクト・ストア・ファイルにテキスト索引を作成します。 |
|
このプロシージャでは、ハイブリッド・パーティション表を作成します。これにより、Autonomous Databaseからハイブリッド・パーティション・データに対して問合せを実行できます。 | |
このプロシージャは、スキーマ内のuser_load_operations 表に記録されたすべてのデータ・ロード操作をクリアするか、type パラメータで示されている、指定されたタイプのすべてのデータ・ロード操作をクリアします。
|
|
このプロシージャは、Autonomous Database上の指定されたディレクトリから指定されたファイルを削除します | |
このプロシージャは、オブジェクト・ストアの指定されたオブジェクトを削除します。 | |
このプロシージャは、入力として |
|
このプロシージャは、オブジェクト・ストア・ファイルのテキスト索引を削除します。 |
|
このプロシージャは、問合せの結果として、Autonomous Databaseからクラウドのファイルにデータをエクスポートします。オーバーロード・フォームでは、operation_id パラメータを使用できます。指定されたformat パラメータのtype オプションに応じて、プロシージャは、CSV、JSON、ParquetまたはXMLのオプションを含むテキストとして行をクラウド・オブジェクト・ストアにエクスポートします |
|
このプロシージャはオーバーロードされています。このプロシージャ・フォームは、Cloud Object Storageからオブジェクトを読み取り、Autonomous Databaseにコピーします。このファンクション・フォームは、Cloud Object Storageからオブジェクトを読み取り、BLOB をAutonomous Databaseに返します。
|
|
このファンクションは、指定されたディレクトリ内のファイルを一覧表示します。結果には、ファイル名と、ファイルに関する追加のメタデータ(ファイル・サイズ(バイト)、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 | |
このファンクションは、オブジェクト・ストアの指定された場所にあるオブジェクトを一覧表示します。結果には、オブジェクト名と、オブジェクトに関する追加のメタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 | |
このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットから別のバケットにオブジェクトを移動します。 | |
このプロシージャはオーバーロードされています。ある形式では、このプロシージャはファイルをAutonomous DatabaseからCloud Object Storageにコピーします。別の形式では、Autonomous Databaseからクラウド・オブジェクト・ストレージにBLOB をコピーします。
|
|
このプロシージャは、クラウドのファイルの外部パーティション表の更新を簡略化します。このプロシージャは、新しいパーティションが追加されたとき、またはパーティションが外部パーティション表のオブジェクト・ストア・ソースから削除されたときに実行します。 |
|
このプロシージャは、外部表のソース・ファイルを検証し、ログ情報を生成して、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 | |
このプロシージャは、外部パーティション表のソース・ファイルを検証し、ログ情報を生成し、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 | |
このプロシージャは、ハイブリッド・パーティション表のソース・ファイルを検証し、ログ情報を生成し、ハイブリッド表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。 |
COPY_COLLECTIONプロシージャ
このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリからSODAコレクションにデータをロードします。指定したSODAコレクションが存在しない場合は、プロシージャによって作成されます。オーバーロード・フォームでは、operation_id
パラメータを使用できます。
構文
DBMS_CLOUD.COPY_COLLECTION
(
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.COPY_COLLECTION
(
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER
);
Parameters
パラメータ | 説明 |
---|---|
|
データのロード先のSODAコレクションの名前。この名前のコレクションがすでに存在する場合は、指定したデータがロードされ、そうでない場合は新しいコレクションが作成されます。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば次のようにします。
URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
ソース・ファイルのフォーマットを説明するオプション。これらのオプションはJSON文字列として指定されます。 サポートされている形式は、 前述したJSONデータのフォーマットとは別に、Autonomous Databaseでは他のフォーマットもサポートされています。Autonomous Databaseでサポートされているformat引数のリストは、「Formatパラメータ」を参照してください。 |
|
このパラメータを使用して、 |
例
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
username => 'user_name@oracle.com',
password => 'password'
);
DBMS_CLOUD.COPY_COLLECTION
(
collection_name => 'myCollection',
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'
);
END;
/
COPY_DATAプロシージャ
このプロシージャは、クラウドのファイルまたはディレクトリ内のファイルからAutonomous Databaseの既存の表にデータをロードします。オーバーロード・フォームでは、operation_id
パラメータを使用できます。
構文
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2,
field_list IN CLOB,
format IN CLOB);
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
schema_name IN VARCHAR2 DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
operation_id OUT NOCOPY NUMBER);
Parameters
パラメータ | 説明 |
---|---|
|
データベースのターゲット表の名前。ターゲット表は |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
|
クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 クラウド・ソース・ファイルのURI このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば次のようにします。
URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
ターゲット表が存在するスキーマの名前。デフォルト値はNULLで、ターゲット表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
|
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを意味します。この引数の構文は、通常のOracle外部表の
|
|
ソース・ファイル、ログ・ファイルおよび不良ファイルの形式を示すオプション。オプションのリストと値の指定方法は、フォーマット・パラメータを参照してください。 Avro、 ORC、 or Parquetファイル形式オプションについては、DBMS_CLOUD Avro、 ORC、 or Parquet用のパッケージ形式オプションを参照してください。 |
|
このパラメータを使用して、 |
使用上のノート
デフォルトのレコード・区切り文字はdetected newline
です。detected newline
を指定すると、DBMS_CLOUD
は、レコード・区切り文字として使用する適切な改行文字の自動検出を試行します。DBMS_CLOUD
は、最初にWindows改行文字\r\n
を検索します。Windows改行文字が見つかった場合、それがプロシージャのすべてのファイルのレコード・デリミタとして使用されます。Windows改行文字が見つからない場合、DBMS_CLOUD
では、UNIX/Linux改行文字\n
が検索され、見つかった場合は\n
がプロシージャのすべてのファイルのレコード・区切り文字として使用されます。ソース・ファイルで異なるレコード・区切り記号の組合せが使用されている場合は、KUP-04020: found record longer than buffer size supported
などのエラーが発生する可能性があります。この場合、ソース・ファイルを変更して同じレコード・区切り文字を使用するか、同じレコード・区切り文字を使用するソース・ファイルのみを指定する必要があります。
recorddelmiter
フォーマット・オプションの詳細は、フォーマット・パラメータを参照してください。
例
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'user_name@oracle.com',
password => 'password'
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name =>'CHANNELS',
credential_name =>'DEF_CRED_NAME',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',')
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name => 'ORDERS',
schema_name => 'TEST_SCHEMA',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
format => json_object('ignoreblanklines' value TRUE,
'rejectlimit' value '0',
'dateformat' value 'yyyy-mm-dd',
'regexuri' value TRUE)
);
END;
/
Avro、ORCまたはParquetファイル用のCOPY_DATAプロシージャ
format
パラメータのtype
を値avro
、orc
またはparquet
に設定することで、クラウドのAvro、ORCまたはParquetファイルから、またはディレクトリ内のファイルから、既存のAutonomous Database表にデータをロードします。
テキスト・ファイルと同様に、データはソースのAvro、ORCまたはParquetファイルから既存の内部表にコピーされます。
構文
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2 DEFAULT,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameters
パラメータ | 説明 |
---|---|
|
データベースのターゲット表の名前。ターゲット表は |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば次のようにします。
URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
ターゲット表が存在するスキーマの名前。デフォルト値はNULLで、ターゲット表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
|
Avro、ORCまたはParquetファイルでは無視されます。 ソースのフィールドは、名前で外部表の列を照合します。ソースのデータ型は外部表の列データ型に変換されます。 ORCファイルについては、DBMS_CLOUD ORCからOracleデータ型へのマッピングのパッケージ化を参照してください。 Parquetファイルの場合、マッピングの詳細は、DBMS_CLOUDパッケージのParquetからOracleデータ型へのマッピングを参照してください。 Avroファイルの場合、DBMS_CLOUDパッケージのAvroからOracleデータ型へのマッピングを参照してください。 |
|
ソース・ファイルのフォーマットを説明するオプション。Avro、 ORC、 or Parquetファイルについては、2つのオプションのみがサポートされています。DBMS_CLOUD Avro、 ORC、 or Parquet用のパッケージ形式オプションを参照してください。 |
使用上のノート
-
他のデータ・ファイルと同様に、Avro、ORCおよびParquetデータをロードすると、
dba_load_operations
およびuser_load_operations
の各表で表示可能なログが生成されます。ロード操作ごとに、ログを含む表を示すdba
[user]_load_operations
にレコードが追加されます。ログ表には、ロードに関するサマリー情報が含まれます。
-
Avro、ORCまたはParquetでは、
format
パラメータのtype
が値avro
、orc
またはparquet
に設定されていると、BADFILE_TABLE
表は常に空です。-
Parquetファイルの場合は、
PRIMARY KEY
制約エラーによってORA
エラーがスローされます。 -
列のデータに変換エラーが発生すると(たとえば、ターゲット列のサイズが変換後の値を保持するには不十分な場合)、その列の値は
NULL
に設定されます。これにより拒否レコードは生成されません。
-
COPY_OBJECTプロシージャ
このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットまたはフォルダから別のクラウド・オブジェクト・ストレージ・バケットにオブジェクトをコピーします。
ソース・バケットまたはターゲット・フォルダは、同じクラウド・オブジェクト・ストア・プロバイダまたは異なるクラウド・オブジェクト・ストア・プロバイダに配置できます。
ソースとターゲットが個別のオブジェクト・ストアにある場合、または同じクラウド・プロバイダを持つ異なるアカウントがある場合、ソースとターゲットの場所に個別の資格証明名を指定できます。
ターゲット資格証明名が指定されていない場合、ソース資格証明名はターゲットの場所でもデフォルトで使用されます。
構文
DBMS_CLOUD.COPY_OBJECT
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
Parameters
パラメータ | 説明 |
---|---|
|
ソースのCloud Object Storageにアクセスするための資格証明の名前。
|
|
ソース・オブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
|
ターゲット・オブジェクト・ストアのURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
|
ターゲットのCloud Object Storageの場所にアクセスするための資格証明の名前。
|
例
BEGIN
DBMS_CLOUD.COPY_OBJECT
(
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
CREATE_EXTERNAL_PART_TABLEプロシージャ
このプロシージャでは、クラウド内のファイル、またはディレクトリ内のファイルから外部パーティション表を作成します。これにより、Autonomous Databaseから外部データに対する問合せを実行できます。
構文
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN VARCHAR2,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameters
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
|
個々のパーティションの場所情報を含む完全なパーティション化句を指定します。
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 たとえば次のようにします。
パラメータ URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
|
|
外部表の列名およびデータ型のカンマ区切りリスト。このパラメータには、
|
|
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを意味します。この引数の構文は、通常のOracle外部表の |
|
フォーマット・オプション
データ・ファイルが構造化されておらず、 Hive形式に基づかないオブジェクト名の場合、 ソース・ファイルのフォーマットを説明するすべての |
使用上のノート
-
partitioning_clause
パラメータとfile_uri_list
パラメータの両方を使用してこのプロシージャをコールすることはできません。 -
Avro、ParquetまたはORCデータ・ファイルを含む構造化データ・ファイルでは、
column_list
パラメータの指定はオプションです。column_list
を指定しない場合、format
パラメータのpartition_columns
オプションには、name
とtype
の両方を含める必要があります。 -
CSVテキスト・ファイルなどの非構造化データ・ファイルでは、
column_list
パラメータは必須です。 -
プロシージャ
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
は、サポートされているクラウド・オブジェクト・ストレージ・サービスで、次のような外部パーティション・ファイルをサポートします:-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage
詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
-
-
プロシージャ
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
は、ローカル・ファイル・システムまたはネットワーク・ファイル・システム内のディレクトリ内の外部パーティション・ファイルをサポートします。 -
file_uri_list
パラメータを指定してDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
をコールする場合、クラウド・オブジェクト・ストアのファイル名で指定される列の型は、次のいずれかの型である必要があります。VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9)
-
デフォルトのレコード・区切り文字は
detected newline
です。detected newline
を指定すると、DBMS_CLOUD
は、レコード・区切り文字として使用する適切な改行文字の自動検出を試行します。DBMS_CLOUD
は、最初にWindows改行文字\r\n
を検索します。Windows改行文字が見つかった場合、それがプロシージャのすべてのファイルのレコード・デリミタとして使用されます。Windows改行文字が検出されない場合、DBMS_CLOUD
では、UNIX/Linux改行文字\n
が検索され、見つかった場合は\n
がプロシージャのすべてのファイルのレコード・区切り文字として使用されます。ソース・ファイルで異なるレコード・区切り記号の組合せが使用されている場合は、KUP-04020: found record longer than buffer size supported
などのエラーが発生する可能性があります。この場合、ソース・ファイルを変更して同じレコード・区切り文字を使用するか、同じレコード・区切り文字を使用するソース・ファイルのみを指定する必要があります。recorddelmiter
フォーマット・オプションの詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
を使用して作成する外部パーティション表には、2つの非表示列file$path
およびfile$name
が含まれます。これらの列は、レコードの取得元ファイルの識別に役立ちます。-
file$path
: オブジェクト名の先頭までのファイル・パス・テキストを指定します。 -
file$name
: バケット名に続くすべてのテキストを含め、オブジェクト名を指定します。
-
例
partitioning_clause
パラメータを使用した例:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name =>'PET1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) location
( ''&base_URL//file_11.txt'')
,
partition p2 values less than (2000) location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000) location
( ''&base_URL/file_31.txt'')
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'PET',
format => json_object('delimiter'value ','),
column_list => 'name varchar2(20), gender varchar2(10), salary number',
partitioning_clause => 'partition by range (salary)
( -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR
partition p1 values less than (100) LOCATION (''test1.csv''),
-- Use test2.csv in a specified directory MY_DIR
partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'') )' );
END;
/
非構造化データ・ファイルでfile_uri_list
およびcolumn_list
パラメータを使用した例:
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/*.csv',
column_list => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)',
field_list => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
format => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/
構造化データ・ファイルでcolumn_list
パラメータを指定せずにfile_uri_list
を使用した例:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
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/*.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;
/
CREATE_EXTERNAL_TABLEプロシージャ
このプロシージャでは、クラウド内のファイルに基づいて、またはディレクトリ内のファイルから外部表を作成します。これにより、Autonomous Databaseから外部データに対する問合せを実行できます。
構文
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameters
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 たとえば次のようにします。
URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
外部表の列名およびデータ型のカンマ区切りリスト。 |
|
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型が |
|
ソース・ファイルのフォーマットを説明するオプション。オプションのリストと値の指定方法は、フォーマット・パラメータを参照してください。 Avro、 ORC、 or Parquet形式のファイルについては、Avro、 ORC、 or Parquetファイル用のCREATE_EXTERNAL_TABLEプロシージャを参照してください。 |
使用上のノート
-
プロシージャ
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
は、Azure Blob Storageを含む、サポートされているクラウド・オブジェクト・ストレージ・サービスの外部パーティション・ファイルをサポートします。資格証明は表レベルのプロパティであるため、外部ファイルは同じオブジェクト・ストアに存在する必要があります。
詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
-
デフォルトのレコード・区切り文字は
detected newline
です。detected newline
を指定すると、DBMS_CLOUD
は、レコード・区切り文字として使用する適切な改行文字の自動検出を試行します。DBMS_CLOUD
は、最初にWindows改行文字\r\n
を検索します。Windows改行文字が見つかった場合、それがプロシージャのすべてのファイルのレコード・デリミタとして使用されます。Windows改行文字が検出されない場合、DBMS_CLOUD
では、UNIX/Linux改行文字\n
が検索され、見つかった場合は\n
がプロシージャのすべてのファイルのレコード・区切り文字として使用されます。ソース・ファイルで異なるレコード・区切り記号の組合せが使用されている場合は、KUP-04020: found record longer than buffer size supported
などのエラーが発生する可能性があります。この場合、ソース・ファイルを変更して同じレコード・区切り文字を使用するか、同じレコード・区切り文字を使用するソース・ファイルのみを指定する必要があります。recorddelimiter
フォーマット・オプションの詳細は、フォーマット・パラメータを参照してください。
例
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name =>'WEATHER_REPORT_DOUBLE_DATE',
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
format => json_object('type' value 'csv', 'skipheaders' value '1'),
field_list => 'REPORT_DATE DATE''mm/dd/yy'',
REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
ACTUAL_MEAN_TEMP,
ACTUAL_MIN_TEMP,
ACTUAL_MAX_TEMP,
AVERAGE_MIN_TEMP,
AVERAGE_MAX_TEMP,
AVERAGE_PRECIPITATION',
column_list => 'REPORT_DATE DATE,
REPORT_DATE_COPY DATE,
ACTUAL_MEAN_TEMP NUMBER,
ACTUAL_MIN_TEMP NUMBER,
ACTUAL_MAX_TEMP NUMBER,
AVERAGE_MIN_TEMP NUMBER,
AVERAGE_MAX_TEMP NUMBER,
AVERAGE_PRECIPITATION NUMBER');
END;
/
SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where
actual_mean_temp > 69 and actual_mean_temp < 74
CREATE_EXTERNAL_TABLE Apache Icebergの手順
このプロシージャは、サポートされている構成でApache Iceberg表の外部表を作成します。
- AWSのIcebergテーブル:
- SparkまたはAthenaで作成されたAWS Glue Data Catalogに登録されているIcebergテーブル。
詳細は、「AWS Glueコネクタを使用したACIDトランザクションを含むApache Iceberg表の読取りおよび書込み、および時間移動の実行」および「Iceberg表の使用」を参照してください。
- ルート・メタデータ・ファイルのURLを直接指定することで、AWS S3に格納されているIceberg表。
- SparkまたはAthenaで作成されたAWS Glue Data Catalogに登録されているIcebergテーブル。
- OCIのIceberg表:
- Hadoopカタログを使用してOCIデータ・フローで生成されたIceberg表。
詳細は、Oracleデータ・フローの例およびHadoopカタログの使用を参照してください。
- ルート・メタデータ・ファイルのURLを直接指定することで、OCIオブジェクト・ストレージに格納されているIceberg表。
- Hadoopカタログを使用してOCIデータ・フローで生成されたIceberg表。
構文
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
Parameters
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
データ・ファイル、メタデータ・ファイルおよびIcebergカタログ(使用する場合)へのアクセスに使用される資格証明の名前。 AWSおよびOCI構成の場合、CREATE_CREDENTIALプロシージャの説明に従って資格証明を作成する必要があります。 AWS Amazonリソース名(ARN)資格証明は現在サポートされていません。 |
|
Icebergカタログが指定されている場合は、NULLである必要があります(次のformat パラメータを参照)。氷山カタログを使用しない場合、file_uri_list には氷山メタデータ・ファイルへのURIが含まれている必要があります。
|
|
列名および型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。 列名は、基礎となるデータ・ファイル(Parquet、Avro、ORC)にある名前と一致します。Oracleデータ型は、Icebergデータ型とParquetデータ型、Avroデータ型およびORCデータ型の間のParquet/Avro/ORCマッピングを使用して導出されます。したがって、ユーザーは |
|
列名およびデータ型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。 |
|
詳細は、OCIデータ・フロー・サンプルでのIcebergのサポートおよびDBMS_CLOUD URI形式を参照してください。 |
AWS Glue Catalogを使用したAWS Iceberg表のフォーマット・パラメータの例
AWS Glue Catalogを使用してAWS Iceberg表に表を作成する場合のformat
パラメータの例を次に示します。
format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'aws_glue',
'iceberg_glue_region' value 'glue region',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
パラメータには、次の2つの要素を持つJSONオブジェクトが含まれます。
protocol_type
: 'iceberg'である必要がありますprotocol_config
: 氷山カタログの詳細を指定するネストされたJSONオブジェクト。iceberg_catalog_type
:'aws_glue'
である必要があります。iceberg_glue_region
: カタログ・リージョン('us-west-1'
など)iceberg_table_path
:glue database.glue table name
パス。
メタデータ・ファイルURIを使用したAWS Iceberg表のフォーマット・パラメータの例
format
パラメータの例を次に示します。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
HadoopCatalogカタログを使用したOCI Iceberg表のフォーマット・パラメータの例
format
パラメータは次のとおりです。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'hadoop',
'iceberg_warehouse' value '<OCI folder URI>',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
パラメータには、次の2つの要素を持つJSONオブジェクトが含まれます。
protocol_type
:'iceberg'
である必要があります。protocol_config
: 氷山カタログの詳細を指定するネストされたJSONオブジェクト。iceberg_catalog_type
:'hadoop'
である必要があります。iceberg_warehouse
: 表の生成時に使用されるウェアハウス・ディレクトリ・パス(ネイティブURI形式)。iceberg_table_path
: 表の作成時に使用されるdatabase_name.table name
パス。
メタデータ・ファイルのURIを使用したOCI Iceberg表のフォーマット・パラメータの例
format
パラメータの例を次に示します。format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
access_protocol
パラメータには、次のように1つの要素を持つJSONオブジェクトが含まれます。
protocol_type
:'iceberg'
である必要があります。
Avro、ORCまたはParquetファイルのCREATE_EXTERNAL_TABLEプロシージャ
format
パラメータのtype
を値avro
、orc
またはparquet
に設定することで、クラウドまたはディレクトリ内のAvro、ORCまたはParquet形式のファイルを使用して外部表を作成します。
これにより、Autonomous Databaseから外部データに対する問合せを実行できます。
構文
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameters
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
|
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウド・ソース・ファイルのURI クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージのファイルに作成された外部表でのみサポートされます。 たとえば次のようにします。
URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
|
(オプション)このフィールドは、指定されると、スキーマ、列およびデータ型の自動導出を指定する Avro、 ORC、 or Parquetソースに対して Parquetファイルの詳細は、DBMS_CLOUDパッケージのParquetとOracleデータ型のマッピングを参照してください。 ORCファイルの詳細は、DBMS_CLOUDパッケージのORCとOracleデータ型のマッピングを参照してください。 Avroファイルの詳細は、DBMS_CLOUDパッケージのAvroからOracleデータ型へのマッピングを参照してください。 |
|
Avro、ORCまたはParquetファイルでは無視されます。 ソースのフィールドは、名前で外部表の列を照合します。ソースのデータ型は外部表の列データ型に変換されます。 ORCファイルについては、DBMS_CLOUDパッケージのORCからOracleデータ型へのマッピングを参照してください Parquetファイルの詳細は、DBMS_CLOUDパッケージのParquetとOracleデータ型のマッピングを参照してください。 Avroファイルの詳細は、DBMS_CLOUDパッケージのAvroからOracleデータ型へのマッピングを参照してください。 |
|
Avro、ORCまたはParquet |
ORCの例
format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')
Avroの例
format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')
Parquetの例
format => '{"type":"parquet", "schema": "all"}'
format => json_object('type' value 'parquet', 'schema' value 'first')
Avro、 ORC、 or Parquet列名のOracle列名へのマッピング
Oracle SQLでの列名マッピングおよび列名変換の使用方法の詳細は、DBMS_CLOUDパッケージAvro、ORCおよびParquetからOracle列名へのマッピングを参照してください。
CREATE_EXTERNAL_TEXT_INDEXプロシージャ
このプロシージャは、オブジェクト・ストレージ・ファイルにテキスト索引を作成します。
CREATE_EXTERNAL_TEXT_INDEX
プロシージャは、location_uri
の場所で指定されたオブジェクト・ストレージ・ファイルにテキスト索引を作成します。場所URI上のファイルを使用して行われた新しい追加または削除に対して、索引は定期的にリフレッシュされます。
構文
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
index_name IN VARCHAR2,
format IN CLOB DEFAULT NULL
);
Parameters
パラメータ | 説明 |
---|---|
|
Cloud Object Storageの場所にアクセスするための資格証明の名前。パブリック、事前認証済または事前署名済バケットURIの場合、NULLを指定できます。
|
location_uri |
オブジェクト・ストア・バケットまたはフォルダURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、DBMS_CLOUDパッケージ・ファイル・クラウドのオブジェクト・ストレージのURI形式を参照してください。 |
index_name |
location_uri の場所にあるファイル上に構築する索引の名前を指定します。
このパラメータは必須です。 |
|
追加の構成オプションを指定します。オプションはJSON文字列として指定されます。 サポートされている形式オプションは次のとおりです。
次の方法でストップワードを指定できます。
|
例
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
(
credential_name => 'DEFAULT_CREDENTIAL',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
index_name => 'EMP',
format => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/
CREATE_HYBRID_PART_TABLEプロシージャ
このプロシージャでは、ハイブリッド・パーティション表を作成します。これにより、クラウドのデータベース・オブジェクトおよびファイル、またはディレクトリ内のデータベース・オブジェクトおよびファイルを使用して、Autonomous Databaseのハイブリッド・パーティション・データに対して問合せを実行できます。
構文
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
Parameters
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
|
個々のパーティションの場所情報を含む完全なパーティション化句を指定します。 ディレクトリを使用するには、パーティション化句で クラウド・ソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現を使用できるのは、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば次のようにします。
|
|
外部表の列名およびデータ型のカンマ区切りリスト。 |
|
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを意味します。この引数の構文は、通常のOracle外部表の |
|
ソース・ファイルのフォーマットを説明するオプション。オプションのリストと値の指定方法は、フォーマット・パラメータを参照してください。 |
使用上のノート
-
プロシージャ
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
は、Azure Blob Storageを含むサポートされているクラウド・オブジェクト・ストレージ・サービスの外部パーティション・ファイルをサポートします。資格証明は表レベルのプロパティであるため、外部ファイルは同じオブジェクト・ストアに存在する必要があります。
詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
-
プロシージャ
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
は、ローカル・ファイル・システムまたはネットワーク・ファイル・システム内のディレクトリ内のハイブリッド・パーティション・ファイルをサポートします。 -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
を使用して作成する外部パーティション表には、2つの非表示列file$path
およびfile$name
が含まれます。これらの列は、レコードの取得元ファイルの識別に役立ちます。-
file$path
: オブジェクト名の先頭までのファイル・パス・テキストを指定します。 -
file$name
: バケット名に続くすべてのテキストを含め、オブジェクト名を指定します。
-
例
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name =>'HPT1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) external location
( ''&base_URL/file_11.txt'')
,
partition p2 values less than (2000) external location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000)
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name => 'HPT1',
format => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
partitioning_clause => 'partition by range (B 2 ALANCE)
(partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
partition p3 values less than (3000))' );
END;
/
DELETE_ALL_OPERATIONSプロシージャ
このプロシージャは、スキーマ内のuser_load_operations
表に記録されたすべてのデータ・ロード操作をクリアするか、type
パラメータで示されている、指定されたタイプのすべてのデータ・ロード操作をクリアします。
構文
DBMS_CLOUD.DELETE_ALL_OPERATIONS
(
type IN VARCHAR DEFAULT NULL);
Parameters
パラメータ | 説明 |
---|---|
|
削除する操作のタイプを指定します。タイプの値は、 |
使用上のノート
-
DBMS_CLOUD.DELETE_ALL_OPERATIONS
は、現在実行中の操作(ステータスが「実行中」の操作)は削除しません。
DELETE_FILEプロシージャ
このプロシージャは、Autonomous Database上の指定されたディレクトリから指定されたファイルを削除します。
構文
DBMS_CLOUD.DELETE_FILE
(
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parameters
パラメータ | 説明 |
---|---|
|
Autonomous Databaseインスタンスのディレクトリの名前。 |
|
削除するファイルの名前。 |
force |
ファイルが存在しない場合、エラーを無視して報告しません。有効な値は、 |
ノート:
DBMS_CLOUD.DELETE_FILE
をADMIN以外のユーザーで実行するには、ファイルを含むディレクトリに対する書込み権限をそのユーザーに付与する必要があります。たとえば、atpc_user
に書込み権限を付与する場合は、ADMINとして次のコマンドを実行します:GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
例
BEGIN
DBMS_CLOUD.DELETE_FILE
(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
DELETE_OBJECTプロシージャ
このプロシージャは、オブジェクト・ストアの指定されたオブジェクトを削除します。
構文
DBMS_CLOUD.DELETE_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parameters
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
object_uri |
削除するオブジェクトのオブジェクトまたはファイルURI。URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
force |
オブジェクトが存在しない場合、エラーを無視して報告しません。有効な値は、 |
例
BEGIN
DBMS_CLOUD.DELETE_OBJECT
(
credential_name => 'DEF_CRED_NAME',
object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
END;
/
DELETE_OPERATIONプロシージャ
このプロシージャは、スキーマのuser_load_operations
またはdba_load_operations
表に記録された、指定された操作IDのデータ・ロード・エントリをクリアします。
構文
DBMS_CLOUD.DELETE_OPERATION
(
id IN NUMBER);
Parameters
パラメータ | 説明 |
---|---|
|
削除するログ・ファイル・エントリに関連付けられた操作IDを指定します。 |
例
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION
(id);
DROP_EXTERNAL_TEXT_INDEXプロシージャ
このプロシージャは、オブジェクト・ストレージ・ファイルのテキスト索引を削除します。
DROP_EXTERNAL_TEXT_INDEX
プロシージャは、CREATE_EXTERNAL_TEXT_INDEX
プロシージャで作成された指定された索引を削除します。
構文
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name IN VARCHAR2,
);
Parameters
パラメータ | 説明 |
---|---|
index_name |
削除する索引の名前を指定します。 索引名は、索引の作成時に指定された名前と一致する必要があります。 このパラメータは必須です。 |
例
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
EXPORT_DATAプロシージャ
format
type
パラメータに基づいて、プロシージャはファイルをクラウドにエクスポートするか、CSV、JSON、ParquetまたはXML形式のテキスト・ファイルとしてディレクトリの場所にエクスポートします。
構文
DBMS_CLOUD.EXPORT_DATA
(
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB,
query IN CLOB);
DBMS_CLOUD.EXPORT_DATA
(
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL,
query IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER);
Parameters
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 資格証明パラメータが含まれていない場合、ディレクトリへの出力を指定します。 |
|
formatパラメータの値、および資格証明パラメータを含めるかどうかに応じて、様々なフォームがあります:
URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
|
エクスポート・フォーマット・オプションを提供するJSON文字列。 サポートされるオプションは次のとおりです。
|
|
このパラメータを使用して、必要なデータのみがエクスポートされるように SELECT warehouse_id, quantity FROM inventories
たとえば次のようにします。 SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories) |
|
このパラメータを使用して、エクスポート操作の進行状況および最終ステータスを |
使用上のノート:
-
指定する
query
パラメータ値は、必要に応じて、結合や副問合せを含む問合せなどの拡張問合せにすることができます。 -
指定されたフォーマット・パラメータに応じて、
DBMS_CLOUD.EXPORT_DATA
は、指定された問合せの結果をクラウド・オブジェクト・ストアまたはCSV、JSON、ParquetまたはXMLファイル形式のディレクトリの場所に出力します。CSV、JSON、ParquetまたはXML出力ファイルでの
DBMS_CLOUD.EXPORT_DATA
の使用の詳細は、DBMS_CLOUD.EXPORT_DATAを使用したテキストとしてのオブジェクト・ストアへのデータのエクスポートおよびDBMS_CLOUD.EXPORT_DATAを使用したディレクトリへのデータのエクスポートを参照してください。 -
CSV、JSONまたはXML出力の場合、生成されるファイルに10MBのデータが含まれると、デフォルトで新しい出力ファイルが作成されます。ただし、結果データが10MB未満の場合でも、データベース・サービスや、Autonomous DatabaseインスタンスのECPU (OCPUを使用している場合)の数によっては、複数の出力ファイルが作成される可能性があります。
詳細は、テキスト出力(CSV、JSON、ParquetまたはXML)のファイル・ネーミングを参照してください。
CSV、JSONまたはXMLのデフォルトの出力ファイルのチャンク・サイズは10MBです。この値は、
format
パラメータのmaxfilesize
オプションを使用して変更できます。詳細は、DBMS_CLOUD Package Format Options for EXPORT_DATAを参照してください。 -
Parquet出力の場合、生成される各ファイルは128MB未満で、複数の出力ファイルが生成される可能性があります。ただし、結果データが128MB未満の場合でも、データベース・サービスおよびAutonomous DatabaseインスタンスのECPU (OCPUを使用している場合)の数によっては、複数の出力ファイルが作成される可能性があります。
詳細は、テキスト出力(CSV、JSON、ParquetまたはXML)のファイル・ネーミングを参照してください。
- parquet出力形式は、専用Exadataインフラストラクチャ上のAutonomous Databaseの高中データベース・サービスでのみ使用できます。
ディレクトリへの出力でのDBMS_CLOUD.EXPORT_DATA
の使用上のノート
-
指定されたディレクトリが存在している必要があり、
ADMIN
ユーザーとしてログインしているか、ディレクトリへのWRITE
アクセス権を持っている必要があります。 -
DBMS_CLOUD.EXPORT_DATA
はディレクトリを作成しません。 -
ファイルは上書きしません。たとえば、
file_uri_list
のダンプ・ファイルが存在する場合、DBMS_CLOUD.EXPORT_DATA
は、次のようなエラーを報告します。ORA-31641: unable to create dump file "/u02/exports/123.dmp" ORA-27038: created file already exists
例
次の例は、formatのtype
パラメータに値json
が指定されたDBMS_CLOUD.EXPORT_DATA
を示しています:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
);
END;
/
次の例は、formatのtype
パラメータに値xml
が指定されたDBMS_CLOUD.EXPORT_DATA
を示しています:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
);
END;
/
次の例は、formatのtype
パラメータに値csv
が指定されたDBMS_CLOUD.EXPORT_DATA
を示しています:
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true ));
);
END;
/
GET_OBJECTプロシージャおよびファンクション
このプロシージャはオーバーロードされています。このプロシージャ・フォームは、Cloud Object Storageからオブジェクトを読み取り、Autonomous Databaseにコピーします。このファンクション・フォームは、Cloud Object Storageからオブジェクトを読み取り、BLOB
をAutonomous Databaseに返します。
構文
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2 DEFAULT NULL,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2 DEFAULT NULL,
object_uri IN VARCHAR2,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL)
RETURN BLOB;
Parameters
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
|
オブジェクトまたはファイルURI。URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
|
データベース上のディレクトリの名前。 脚注1 |
|
作成するファイルの名前を指定します。ファイル名を指定しない場合、ファイル名は |
startoffset |
プロシージャが読取りを開始するオフセット(バイト)。 |
endoffset |
プロシージャが読取りを停止するオフセット(バイト)。 |
|
オブジェクトの格納に使用する圧縮を指定します。 |
脚注1
ノート:
ADMIN以外のユーザーでDBMS_CLOUD.GET_OBJECT
を実行するには、そのユーザーにディレクトリに対するWRITE
権限を付与する必要があります。たとえば、atpc_user
に書込み権限を付与する場合は、ADMINとして次のコマンドを実行します:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
戻り値
ファンクション形式では、オブジェクト・ストアから読み取り、DBMS_CLOUD.GET_OBJECT
はBLOB
を戻します。
例
BEGIN
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
directory_name => 'DATA_PUMP_DIR');
END;
/
オブジェクト・ストア内のファイルから文字データを読み取るには:
SELECT to_clob(
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;
データベースのBLOB
のオブジェクト・ストアに格納されているイメージを追加するには:
DECLARE
l_blob BLOB := NULL;
BEGIN
l_blob := DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/
この例では、namespace-string
はOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketname
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
LIST_FILESファンクション
このファンクションは、指定されたディレクトリ内のファイルを一覧表示します。結果には、ファイル名と、ファイルに関する追加のメタデータ(ファイル・サイズ(バイト)、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。
構文
DBMS_CLOUD.LIST_FILES
(
directory_name IN VARCHAR2)
RETURN TABLE;
Parameters
パラメータ | 説明 |
---|---|
|
データベース上のディレクトリの名前。 |
使用上のノート
-
ADMIN以外のユーザーで
DBMS_CLOUD.LIST_FILES
を実行するには、そのユーザーにそのディレクトリに対する読取り権限を付与する必要があります。たとえば、atpc_user
に読取り権限を付与する場合は、ADMINとして次のコマンドを実行します:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
-
これは、戻り値のタイプが
DBMS_CLOUD_TYPES.list_object_ret_t
であるパイプライン・テーブル・ファンクションです。 -
DBMS_CLOUD.LIST_FILES
はチェックサム値を取得せず、このフィールドに対してNULL
を返します。
例
これはパイプライン関数で、各ファイルの行を返します。たとえば、次の問合せを使用してこのファンクションを使用します:
SELECT * FROM DBMS_CLOUD.LIST_FILES
('DATA_PUMP_DIR');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- ---------- --------------------- ---------------------
cwallet.sso 2965 2018-12-12T18:10:47Z 2019-11-23T06:36:54Z
LIST_OBJECTSファンクション
このファンクションは、オブジェクト・ストアの指定された場所にあるオブジェクトを一覧表示します。結果には、オブジェクト名と、オブジェクトに関する追加のメタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。
構文
DBMS_CLOUD.LIST_OBJECTS
(
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
Parameters
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
location_uri |
オブジェクトまたはファイルURI。URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
使用上のノート
-
オブジェクト・ストアの機能によっては、
DBMS_CLOUD.LIST_OBJECTS
が特定の属性の値を返さないことがあります。その場合、フィールドの戻り値はNULL
です。サポートされているすべてのオブジェクト・ストアが、
OBJECT_NAME
、BYTES
およびCHECKSUM
フィールドの値を返します。次の表に、オブジェクト・ストアごとのフィールド
CREATED
およびLAST_MODIFIED
のサポートを示します:オブジェクト・ストア CREATED
LAST_MODIFIED
Oracle Cloud Infrastructureネイティブ タイムスタンプを戻します タイムスタンプを戻します Oracle Cloud Infrastructure Swift NULL
を返しますタイムスタンプを返します Amazon S3 NULL
を返しますタイムスタンプを返します Amazon S3互換 NULL
を返しますタイムスタンプを返します Azure タイムスタンプを返します タイムスタンプを返します -
チェックサム値は、MD5チェックサムです。これは、オブジェクトの内容に基づいて計算されます。
-
これは、戻り値のタイプが
DBMS_CLOUD_TYPES.list_object_ret_t
であるパイプライン・テーブル・ファンクションです。
例
これは、オブジェクトごとの行を返すパイプライン関数です。たとえば、次の問合せを使用してこのファンクションを使用します:
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS
('OBJ_STORE_CRED',
'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso 2965 2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z
この例では、namespace-string
はOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketname
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
MOVE_OBJECTプロシージャ
このプロシージャは、あるクラウド・オブジェクト・ストレージ・バケットまたはフォルダから別のクラウド・オブジェクト・ストレージ・バケットにオブジェクトを移動します。
ソース・バケットまたはターゲット・フォルダは、同じクラウド・オブジェクト・ストア・プロバイダまたは異なるクラウド・オブジェクト・ストア・プロバイダに配置できます。
ソースとターゲットが個別のオブジェクト・ストアにある場合、または同じクラウド・プロバイダを持つ異なるアカウントがある場合、ソースとターゲットの場所に個別の資格証明名を指定できます。
ターゲット資格証明名が指定されていない場合、ソース資格証明名はターゲットの場所でもデフォルトで使用されます。
構文
DBMS_CLOUD.MOVE_OBJECT
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
Parameters
パラメータ | 説明 |
---|---|
|
ソースのCloud Object Storageにアクセスするための資格証明の名前。
|
|
ソース・オブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
|
ファイルの移動が必要なターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
|
ターゲットのCloud Object Storageの場所にアクセスするための資格証明の名前。
|
例
BEGIN
DBMS_CLOUD.MOVE_OBJECT
(
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
PUT_OBJECTプロシージャ
このプロシージャはオーバーロードされています。ある形式では、このプロシージャはファイルをAutonomous DatabaseからCloud Object Storageにコピーします。別の形式では、Autonomous Databaseからクラウド・オブジェクト・ストレージにBLOB
をコピーします。
構文
DBMS_CLOUD.PUT_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.PUT_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
contents IN BLOB
compression IN VARCHAR2 DEFAULT NULL);
Parameters
パラメータ | 説明 |
---|---|
|
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
|
オブジェクトまたはファイルURI。URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
|
Autonomous Database上のディレクトリの名前。 脚注1 |
|
Autonomous Databaseからクラウド・オブジェクト・ストレージにコピーする |
|
指定されたディレクトリ内のファイルの名前。 |
|
オブジェクトの格納に使用する圧縮を指定します。 デフォルト値: |
脚注1
ノート:
ADMIN以外のユーザーでDBMS_CLOUD.PUT_OBJECT
を実行するには、そのユーザーにディレクトリに対する読取り権限を付与する必要があります。たとえば、atpc_user
に読取り権限を付与する場合は、ADMINとして次のコマンドを実行します:
GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
例
データベース内処理後にBLOB
データを処理して、そのデータをオブジェクト・ストアのファイルに直接格納するには:
DECLARE
my_blob_data BLOB;
BEGIN
/* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
contents => my_blob_data));
END;
/
使用上のノート
クラウド・オブジェクト・ストレージに応じて、転送するオブジェクトのサイズは次のように制限されます:
クラウド・オブジェクト・ストレージ・サービス | オブジェクト転送のサイズ制限値 |
---|---|
Oracle Cloud Infrastructure Object Storage |
50GB |
Amazon S3 |
5GB |
Azure Blob Storage |
256MB |
Amazon S3互換 |
オブジェクト・ストア・プロバイダによって設定されます。詳細は、プロバイダのドキュメントを参照してください。 |
Oracle Cloud Infrastructureオブジェクト・ストアでは、資格証明を指定せずにファイルをパブリック・バケットに書き込むことはできません(Oracle Cloud Infrastructureでは、ユーザーはパブリック・バケットからオブジェクトをダウンロードできます)。したがって、PUT_OBJECT
を使用してオブジェクトをOracle Cloud Infrastructureパブリック・バケットに格納するには、有効な資格証明を含む資格証明名を指定する必要があります。
詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
SYNC_EXTERNAL_PART_TABLEプロシージャ
このプロシージャは、クラウドのファイルの外部パーティション表の更新を簡略化します。このプロシージャは、新しいパーティションが追加されたとき、またはパーティションが外部パーティション表のオブジェクト・ストア・ソースから削除されたときに実行します。
構文
DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
update_columns IN BOOLEAN DEFAULT);
Parameters
パラメータ | 説明 |
---|---|
|
ターゲット表の名前。 |
|
ターゲット表が存在するスキーマの名前。デフォルト値はNULLで、ターゲット表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
|
新しいファイルによってスキーマに変更を取り込むことができます。サポートされる更新には、新しい列や削除された列が含まれます。データ型の変更など、既存の列に対する更新ではエラーがスローされます。 デフォルト値: False |
VALIDATE_EXTERNAL_PART_TABLEプロシージャ
このプロシージャは、外部パーティション表のソース・ファイルを検証し、ログ情報を生成し、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。オーバーロード・フォームでは、operation_id
パラメータを使用できます。
構文
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
Parameters
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
このパラメータを使用して、 |
|
定義すると、特定のパーティションのみが検証されます。指定しない場合は、 |
|
定義すると、特定のサブパーティションのみが検証されます。指定しない場合は、 |
|
外部表が存在するスキーマの名前。デフォルト値はNULLで、外部表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
|
スキャンされる行数。デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされることを意味します。 |
|
内部使用のみ。このパラメータは使用しないでください。 |
|
行が拒否されたときに検証を停止するかどうかを決定します。デフォルト値は |
VALIDATE_EXTERNAL_TABLEプロシージャ
このプロシージャは、外部表のソース・ファイルを検証し、ログ情報を生成して、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。オーバーロード・フォームでは、operation_id
パラメータを使用できます。
構文
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NOCOPY NUMBER,
schema_name IN VARCHAR2 DEFAULT NULL,
rowcount IN NUMBER DEFAULT 0,
stop_on_error IN BOOLEAN DEFAULT TRUE);
Parameters
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
このパラメータを使用して、 |
|
外部表が存在するスキーマの名前。デフォルト値はNULLで、外部表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
|
スキャンされる行数。デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされることを意味します。 |
|
行が拒否されたときに検証を停止するかどうかを決定します。デフォルト値は 外部表がAvro、ORCまたはParquetファイルを参照している場合、検証は最初に拒否された行を停止します。 外部表で |
使用上のノート
-
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
は、パーティション外部表とハイブリッド・パーティション表の両方で機能します。これは、rowcount
に達するか、stop_on_error
が適用されるまで、場合によってはすべての外部パーティションからデータを読み取ります。読み取るパーティション(またはパーティションの一部)の順序は制御できません。
VALIDATE_HYBRID_PART_TABLEプロシージャ
このプロシージャは、ハイブリッド・パーティション表のソース・ファイルを検証し、ログ情報を生成し、ハイブリッド表に指定されたフォーマット・オプションと一致しない行をAutonomous Databaseのbadfile表に格納します。オーバーロード・フォームでは、operation_id
パラメータを使用できます。
構文
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
Parameters
パラメータ | 説明 |
---|---|
|
外部表の名前。 |
|
このパラメータを使用して、 |
|
定義すると、特定のパーティションのみが検証されます。指定されていない場合は、 |
|
定義すると、特定のサブパーティションのみが検証されます。指定しない場合は、 |
|
外部表が存在するスキーマの名前。デフォルト値はNULLで、外部表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
|
スキャンされる行数。デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされることを意味します。 |
|
内部使用のみ。このパラメータは使用しないでください。 |
|
行が拒否されたときに検証を停止するかどうかを決定します。デフォルト値は |