オブジェクトおよびファイル用のDBMS_CLOUD
この項では、オブジェクトおよびファイルの操作に使用するDBMS_CLOUDサブプログラムについて説明します。
前提条件
開発者は、Oracle Public Cloud、MulticloudまたはExadata Cloud@CustomerにデプロイされたAutonomous AI DatabaseでDBMS_CLOUDプロシージャを使用できます。
デプロイメントの選択に応じて、DBMS_CLOUDプロシージャをAmazon S3、Azure Blob StorageおよびGoogle Cloud Storageサービス・プロバイダで使用するには、次の前提条件を満たす必要があります。
アウトバウンド接続は、次に説明するようにフリート管理者がNATゲートウェイを使用して構成されている必要があります。
-
Oracle Cloud InfrastructureドキュメントのNAT Gatewayの作成の手順に従って、Autonomous AI Databaseリソースが存在しているVirtual Cloud Network (VCN)にNAT Gatewayを作成します。
-
NATゲートウェイを作成したら、Autonomous AI Databaseリソースが存在する各サブネット(VCN内)にルート・ルールおよびエグレス・セキュリティ・ルールを追加して、これらのリソースがゲートウェイを使用してAzure ADインスタンスから公開キーを取得できるようにします:
-
サブネットの「サブネットの詳細」ページに移動します。
-
「サブネット情報」タブで、サブネットの「ルート表」の名前をクリックして、その「ルート表の詳細」ページを表示します。
-
既存のルート・ルールの表では、次の特性を持つルールがすでに存在するかどうかを確認します:
-
宛先: 0.0.0.0/0
-
ターゲット・タイプ: NAT Gateway
-
ターゲット: VCN内に作成したNATゲートウェイの名前
そのようなルールが存在しない場合は、「ルート・ルールの追加」をクリックし、これらの特性を持つルート・ルールを追加します。
-
-
サブネットの「サブネットの詳細」ページに戻ります。
-
サブネットの「セキュリティ・リスト」表で、サブネット セキュリティ・リストの名前をクリックして、その「セキュリティ・リストの詳細」ページを表示します。
-
サイド・メニュー内の「リソース」で、「エグレス・ルール」をクリックします。
-
既存のエグレス・ルールの表では、次の特性を持つルールがすでに存在するかどうかを確認します:
-
宛先タイプ:CIDR
-
宛先:0.0.0.0/0
-
IPプロトコル:TCP
-
ソース・ポート範囲:443
-
宛先ポート範囲:すべて
そのようなルールが存在しない場合は、「エグレス・ルールの追加」をクリックし、これらの特性を持つエグレス・ルールを追加します。
-
-
ご使用の環境のHTTPプロキシ設定では、データベースがクラウド・サービス・プロバイダにアクセスできるようにする必要があります。
これらの設定は、コンソールを使用したExadata Database Service on Cloud@Customerのプロビジョニングの説明に従って、Exadata Cloud@Customerインフラストラクチャの作成時にフリート管理者によって定義されます。
ノート: HTTPプロキシを含むネットワーク構成は、Exadataインフラストラクチャが「アクティブ化が必要」状態になるまで編集できます。アクティブ化した後は、これらの設定を編集できません。
すでにプロビジョニングされているExadataインフラストラクチャのHTTPプロキシを設定するには、My Oracle Supportでサービス・リクエスト(SR)が必要です。詳細は、My Oracle Supportでのサービス・リクエストの作成を参照してください。
オブジェクトおよびファイルのDBMS_CLOUDサブプログラム
DBMS_CLOUDパッケージ内のオブジェクトおよびファイル管理用のサブプログラム。
| サブプログラム | 説明 |
|---|---|
| COPY_COLLECTIONプロシージャ | このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリ内のファイルから既存のSODAコレクションにデータをロードします。 |
| COPY_DATAプロシージャ | このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリ内のファイルから、既存のAutonomous AI Database表にデータをロードします。 |
| Avro、ORCまたはParquetファイル用のCOPY_DATAプロシージャ | このプロシージャは、 テキスト・ファイルと同様に、データはソースのAvro、ORCまたはParquetファイルから既存の内部表にコピーされます。 |
| COPY_OBJECTプロシージャ | このプロシージャは、あるCloud Object Storageバケットから別のCloud Object Storageバケットにファイルをコピーします。 |
| CREATE_EXTERNAL_TABLEプロシージャ | このプロシージャでは、クラウド内のファイルに基づいて、またはディレクトリ内のファイルに外部表を作成します。これにより、Autonomous AI Databaseから外部データに対する問合せを実行できます。 |
| Avro、ORCまたはParquetファイル用のCREATE_EXTERNAL_TABLEプロシージャ | このプロシージャは、 これにより、Autonomous AI Databaseから外部データに対する問合せを実行できます。 |
| CREATE_EXTERNAL_TEXT_INDEXプロシージャ | このプロシージャは、オブジェクト・ストア・ファイルにテキスト索引を作成します。 |
| CREATE_HYBRID_PART_TABLEプロシージャ | このプロシージャでは、ハイブリッド・パーティション表を作成します。これにより、Autonomous AI Databaseからハイブリッド・パーティション・データに対する問合せを実行できるようになります。 |
| DELETE_ALL_OPERATIONSプロシージャ | このプロシージャでは、スキーマ内のuser_load_operations表に記録されたすべてのデータ・ロード操作を消去するか、typeパラメータで示されている、指定されたタイプのすべてのデータ・ロード操作を消去します。 |
| DELETE_FILEプロシージャ | このプロシージャは、Autonomous AI Database上の指定されたディレクトリから、指定されたファイルを削除します |
| DELETE_OBJECTプロシージャ | このプロシージャは、オブジェクト・ストアの指定されたオブジェクトを削除します。 |
| DELETE_OPERATIONプロシージャ | このプロシージャは、入力としてoperation_idを受け入れ、指定されたoperation_idに関連付けられたログを削除します。 |
| DROP_EXTERNAL_TEXT_INDEXプロシージャ | このプロシージャは、オブジェクト・ストア・ファイルのテキスト索引を削除します。 |
| EXPORT_DATAプロシージャ | このプロシージャは、問合せの結果に基づいて、Autonomous AIデータベースからクラウド内のファイルにデータをエクスポートします。オーバーロード・フォームでは、operation_idパラメータを使用できます。指定したformatパラメータtypeオプションに応じて、CSV、JSON、ParquetまたはXMLのオプションを使用して行をテキストとしてクラウド・オブジェクト・ストアにエクスポートします |
| GET_OBJECTプロシージャ/ファンクション | このプロシージャはオーバーロードされています。プロシージャ・フォームは、Cloud Object Storageからオブジェクトを読み取り、そのオブジェクトをAutonomous AI Databaseにコピーします。このファンクション・フォームは、Cloud Object Storageからオブジェクトを読み取り、Autonomous AI DatabaseにBLOBを返します。 |
| LIST_FILESファンクション | このファンクションは、指定されたディレクトリ内のファイルを一覧表示します。結果には、ファイル名と、ファイルに関する追加のメタデータ(ファイル・サイズ(バイト)、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 |
| LIST_OBJECTSファンクション | このファンクションは、オブジェクト・ストアの指定された場所にあるオブジェクトを一覧表示します。結果には、オブジェクト名と、オブジェクトに関する追加のメタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。 |
| MOVE_OBJECTプロシージャ | このプロシージャは、あるCloud Object Storageバケットから別のCloud Object Storageバケットにオブジェクトを移動します。 |
| PUT_OBJECTプロシージャ | このプロシージャはオーバーロードされています。このプロシージャは、1つの形式でAutonomous AI DatabaseからCloud Object Storageへファイルをコピーします。別の形式では、このプロシージャには、Autonomous AI DatabaseからCloud Object StorageへのBLOBのコピーがあります。 |
| SYNC_EXTERNAL_PART_TABLEプロシージャ | この手順により、クラウド内のファイルからの外部パーティション表の更新が簡略化されます。このプロシージャは、新しいパーティションが追加されたとき、または外部パーティション表のオブジェクト・ストア・ソースからパーティションが削除されたときに実行します。 |
| VALIDATE_EXTERNAL_TABLEプロシージャ | このプロシージャでは、外部表のソース・ファイルを検証し、ログ情報を生成して、外部表に指定されたフォーマット・オプションと一致しない行をAutonomous AIデータベースのbadfile表に格納されます。 |
| VALIDATE_EXTERNAL_PART_TABLEプロシージャ | このプロシージャにより、外部パーティション表のソース・ファイルが検証され、ログ情報が生成され、外部表に指定されたフォーマット・オプションと一致しない行がAutonomous AI DatabaseのbadFile表に格納されます。 |
| VALIDATE_HYBRID_PART_TABLEプロシージャ | このプロシージャによって、ハイブリッド・パーティション表のソース・ファイルが検証され、ログ情報が生成され、ハイブリッド表に指定されたフォーマット・オプションと一致しない行がAutonomous AI 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
| パラメータ | 説明 |
|---|---|
collection_name |
データのロード先のSODAコレクションの名前。この名前のコレクションがすでに存在する場合は、指定したデータがロードされ、そうでない場合は新しいコレクションが作成されます。 |
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
file_uri_list |
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウドのソース・ファイルURI クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、 文字"*"および"?"は、 正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致は たとえば: URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
format |
ソース・ファイルのフォーマットを説明するオプション。これらのオプションはJSON文字列として指定されます。 サポートされている形式は、 前述したJSONデータのフォーマットとは別に、Autonomous AI Databaseでは他のフォーマットもサポートされています。Autonomous AI Databaseでサポートされているフォーマット引数のリストは、フォーマット・パラメータを参照してください。 |
operation_id |
このパラメータを使用して、USER_LOAD_OPERATIONSビューで、ロード操作の進行状況および最終ステータスを対応するIDとして追跡します。 |
例
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 AI 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
| パラメータ | 説明 |
|---|---|
table_name |
データベースのターゲット表の名前。ターゲット表はCOPY_DATAを実行する前に作成しておく必要があります。 |
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
file_uri_list |
クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 クラウドのソース・ファイルURI このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致は たとえば: URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
schema_name |
ターゲット表が存在するスキーマの名前。デフォルト値はNULLで、ターゲット表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
field_list |
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを示します。この引数の構文は、通常のOracle外部表の
|
format |
ソース・ファイル、ログ・ファイルおよび不良ファイルの形式を示すオプション。オプションのリストと値の指定方法は、フォーマット・パラメータを参照してください。 Avro、ORCまたはParquetファイル形式オプションについては、「Avro、ORCまたはParquet用のDBMS_CLOUDパッケージの形式オプション」を参照してください。 |
operation_id |
このパラメータを使用して、USER_LOAD_OPERATIONSビューで、ロード操作の進行状況および最終ステータスを対応するIDとして追跡します。 |
使用上のノート
デフォルトのレコード・デリミタは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 AI 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
| パラメータ | 説明 |
|---|---|
table_name |
データベースのターゲット表の名前。ターゲット表はCOPY_DATAを実行する前に作成しておく必要があります。 |
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
file_uri_list |
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウドのソース・ファイルURI クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、 文字"*"および"?"は、 正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は たとえば: URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
schema_name |
ターゲット表が存在するスキーマの名前。デフォルト値はNULLで、ターゲット表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
field_list |
Avro、ORCまたはParquetファイルについては無視されます。 ソースのフィールドは、外部表の列を名前で照合します。ソースのデータ型は、外部表の列のデータ型に変換されます。 ORCファイルの場合、「DBMS_CLOUDパッケージのORCからOracleデータ型へのマッピング」を参照。 Parquetファイルの詳細は、「DBMS_CLOUDパッケージParquetからOracleデータ型へのマッピング」を参照してください。 Avroファイルについては、マッピングの詳細は、DBMS_CLOUDパッケージAvroからOracleデータ型へのマッピングを参照してください。 |
format |
ソース・ファイルのフォーマットを説明するオプション。Avro、ORCまたはParquetファイルについては、2つのオプションのみがサポートされています。「Avro、ORCまたはParquet用のDBMS_CLOUDパッケージの形式オプション」を参照してください。 |
使用上のノート
-
他のデータ・ファイルと同様に、Avro、ORCおよびParquetデータをロードすると、
dba_load_operationsおよびuser_load_operations表で表示可能なログが生成されます。各ロード操作により、ログを含む表を示すdba[user]_load_operationsにレコードが追加されます。ログ表には、ロードに関するサマリー情報が含まれます。
-
Avro、ORCまたはParquetの場合、
formatパラメータのtypeが値1avro、orcまたはparquetに設定されていると、BADFILE_TABLE表は常に空になります。-
Parquetファイルの場合、
PRIMARY KEY制約エラーによりORAエラーがスローされます。 -
列のデータで変換エラーが発生した場合(たとえば、ターゲット列の大きさが変換済値を保持するのに十分な大きさでない場合など)、列の値は
NULLに設定されます。これにより、拒否されたレコードは生成されません。
-
COPY_OBJECTプロシージャ
このプロシージャは、あるCloud Object Storageバケットまたはフォルダから別のCloud Object Storageバケットまたはフォルダにオブジェクトをコピーします。
ソース・バケットおよびターゲット・バケットまたはフォルダは、同じクラウド・オブジェクト・ストア・プロバイダまたは異なるクラウド・オブジェクト・ストア・プロバイダに配置できます。
ソースとターゲットが別々のオブジェクト・ストアにある場合、または同じクラウド・プロバイダで異なるアカウントを持つ場合は、ソースとターゲットの場所に別々の資格証明名を指定できます。
ソース資格証明名は、ターゲット資格証明名が指定されていない場合、ターゲットの場所でもデフォルトで使用されます。
構文
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
| パラメータ | 説明 |
|---|---|
source_credential_name |
ソース・クラウドのオブジェクト・ストレージにアクセスするための資格証明の名前です。
|
source_object_uri |
ソースのオブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
target_object_uri |
ターゲット・オブジェクト・ストアのURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
target_credential_name |
ターゲットのクラウド・オブジェクト・ストレージの場所にアクセスするための資格証明の名前です。
|
例
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 AI 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
| パラメータ | 説明 |
|---|---|
table_name |
外部表の名前。 |
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
partitioning_clause |
個々のパーティションの場所情報を含む、完全なパーティション化句を指定します。
|
file_uri_list |
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウドのソース・ファイルURI クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、 文字"*"および"?"は、 正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージ内のファイルに作成される外部表でのみサポートされます。 たとえば: パラメータ URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
|
column_list |
外部表の列名およびデータ型のカンマ区切りリスト。このパラメータには、
|
field_list |
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを示します。この引数の構文は、通常のOracle外部表のfield_list句と同じです。詳細は、『Oracle Database 19cユーティリティ』のfield_listまたは『Oracle Database 26aiユーティリティ』を参照してください。 |
format |
フォーマット・オプション
データ・ファイルが構造化されておらず、 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ストレージ
詳細は、クラウド・オブジェクト・ストレージの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;
/
例: C3 Object Storageバケットに格納されているオブジェクトを使用した外部パーティション表の作成。
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'USAGE_EXTP',
credential_name => 'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => 'https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/usage-data/*usage-data*.parquet',
format => json_object(
'type' value 'parquet', 'schema' value 'first',
'partition_columns' value json_array(
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'number'),
json_object('name' value 'day', 'type' value 'number')
)
)
);
END;
/
CREATE_EXTERNAL_TABLEプロシージャ
このプロシージャでは、クラウド内のファイルに基づいて、またはディレクトリ内のファイルから外部表を作成します。これにより、Autonomous AI 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
| パラメータ | 説明 |
|---|---|
table_name |
外部表の名前。 |
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
file_uri_list |
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウドのソース・ファイルURI クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、
正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージ内のファイルに作成される外部表でのみサポートされます。 たとえば: URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。
1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
column_list |
外部表の列名およびデータ型のカンマ区切りリスト。 |
field_list |
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを示します。この引数の構文は、通常のOracle Database外部表のfield_list句と同じです。field_listの詳細は、Oracle Database 19cユーティリティまたはOracle Database 26aiユーティリティのfield_definitions句の下のORACLE_LOADERアクセス・ドライバfield_listを参照してください。 |
format |
ソース・ファイルのフォーマットを説明するオプション。オプションのリストと値の指定方法は、フォーマット・パラメータを参照してください。 Avro、ORCまたはParquet形式のファイルについては、「Avro、ORCまたは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フォーマット・オプションの詳細は、フォーマット・パラメータを参照してください。
例
例: オブジェクト・ストレージでのCSVファイルからの外部表の作成。
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
例: C3 Object Storageバケットに格納されているオブジェクトを使用した外部表の作成。
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name =>'CHANNELS_EXT',
credential_name =>'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => '<https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/channels.txt>',
format => json_object('delimiter' value ','),
column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)'
);
END;
/
Apache IcebergのCREATE_EXTERNAL_TABLEプロシージャ
このプロシージャは、サポートされている構成にApache Iceberg表の外部表を作成します。
次の特定の構成がサポートされています。
-
AWSのIcebergテーブル:
-
AWS Glue Data Catalogに登録されたIcebergテーブルは、SparkまたはAthenaで作成されます。
詳細は、AWS Glueコネクタを使用したACIDトランザクションを含むApache Iceberg表の読取りおよび書込みおよびタイム・トラベルの実行およびIceberg表の使用を参照してください。
-
ルートメタデータファイルのURLを直接指定することで、AWS S3に保存されたIcebergテーブル。
-
-
OCI上のIceberg表:
-
Hadoopカタログを使用してOCIデータ・フローで生成されたIceberg表。
詳細は、Oracle Data Flowの例およびHadoopカタログの使用を参照してください。
-
ルート・メタデータ・ファイルのURLを直接指定することで、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
| パラメータ | 説明 |
|---|---|
table_name |
外部表の名前。 |
credential_name |
データ・ファイル、メタデータ・ファイルおよびIcebergカタログ(使用する場合)へのアクセスに使用される資格証明の名前。 AWSおよびOCI構成の場合は、CREATE_CREDENTIALプロシージャの説明に従って資格証明を作成する必要があります。 AWS Amazon Resource Names (ARN)資格証明は現在サポートされていません。 |
file_uri_list |
Icebergカタログを指定する場合は、NULLである必要があります(後述のformatパラメータを参照)。氷山カタログを使用しない場合、file_uri_listには氷山メタデータ・ファイルへのURIが含まれている必要があります。 |
column_list |
列名と型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。 列名は、基礎となるデータ・ファイル(Parquet、Avro、ORC)にある名前と一致します。Oracleデータ型は、Icebergデータ型とParquetデータ型、Avroデータ型およびORCデータ型の間のParquet/Avro/ORCマッピングを使用して導出されます。したがって、ユーザーは |
field_list |
列名およびデータ型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。 |
format |
詳細は、OCIデータ・フロー・サンプルでのIcebergサポートおよびDBMS_CLOUD URIフォーマットを参照してください。 |
サンプル書式パラメータ
-
AWS Glue Catalogを使用してAWS Icebergテーブル上にテーブルを作成する場合は、次のとおりです。
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: icebergカタログの詳細を指定するネストされたJSONオブジェクト。iceberg_catalog_type:'aws_glue'である必要がありますiceberg_glue_region: カタログ・リージョン('us-west-1'など)iceberg_table_path:glue database.glue table nameパス。
-
メタデータ・ファイルURIを使用してAWS Iceberg表上に表を作成する場合は、次のとおりです。
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg') -
HadoopCatalogカタログを使用してOCIデータ・フローによって作成されたOCI Iceberg表上に表を作成する場合、次のようになります。
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: icebergカタログの詳細を指定するネストされたJSONオブジェクト。iceberg_catalog_type:'hadoop'である必要がありますiceberg_warehouse: ネイティブURI形式で表の生成時に使用されるウェアハウス・ディレクトリ・パス。iceberg_table_path: 表の作成時に使用されるdatabase_name.table nameパス。
-
メタデータ・ファイルのURIを使用してOCI Iceberg表に表を作成する場合、次のようになります:
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg')access_protocolパラメータに、1つの要素protocol_type('iceberg')を持つJSONオブジェクトが含まれている場合。
Avro、ORCまたはParquetファイル用のCREATE_EXTERNAL_TABLEプロシージャ
このプロシージャは、formatパラメータのtypeを値avro、orcまたはparquetに設定して、クラウド内のAvro、ORCまたはParquet形式のファイルを使用して、あるいはディレクトリ内の外部表を作成します。
これにより、Autonomous AI 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
| パラメータ | 説明 |
|---|---|
table_name |
外部表の名前。 |
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。
|
file_uri_list |
このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 クラウドのソース・ファイルURI クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、 文字"*"および"?"は、 正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致は このオプションは、オブジェクト・ストレージ内のファイルに作成される外部表でのみサポートされます。 たとえば: URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。
ディレクトリ 1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、 ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例: 複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例: 大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例: 引用符文字を含めるには、2つの引用符を使用します。例: |
column_list |
(オプション)このフィールドが指定されている場合、スキーマ、列およびデータ型を自動的に導出するように指定する Avro、ORCまたはParquetソースに対して Parquetファイルの詳細は、「DBMS_CLOUDパッケージParquetからOracleデータ型へのマッピング」を参照してください。 ORCファイルの場合、詳細は、「DBMS_CLOUDパッケージORCからOracleデータ型へのマッピング」を参照してください。 Avroファイルの場合、詳細は「DBMS_CLOUDパッケージAvroからOracleデータ型へのマッピング」を参照してください。 |
field_list |
Avro、ORCまたはParquetファイルについては無視されます。 ソースのフィールドは、外部表の列を名前で照合します。ソース・データ型は、外部表の列データ型に変換されます。 ORCファイルについては、「DBMS_CLOUDパッケージORCからOracleデータ型へのマッピング」を参照してください Parquetファイルの詳細は、「DBMS_CLOUDパッケージParquetからOracleデータ型へのマッピング」を参照してください。 Avroファイルについては、「DBMS_CLOUDパッケージAvroからOracleデータ型へのマッピング」を参照してください。 |
format |
Avro、ORCまたはParquetのtypeソース・ファイルについては、「Avro、ORC、またはParquet用のDBMS_CLOUDパッケージの形式オプション」を参照してください。 |
例
-
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')
ヒント: 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
| パラメータ | 説明 |
|---|---|
credential_name |
Cloud Object Storageの場所にアクセスするための資格証明の名前です。パブリック・バケットURI、事前認証済バケットURIまたは事前署名済バケットURIの場合、NULLを指定できます。
|
location_uri |
このパラメータは、ソース・ファイルURIのカンマ区切りリストを指定します。 クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 このパラメータは必須です。 クラウドのソース・ファイルURI このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。 正規表現は、 文字"*"および"?"は、 正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致は 正規表現を使用する例: ワイルドカードを使用した例:
URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。
|
index_name |
`location_uri`の場所にあるファイル上に構築する索引の名前を指定します。 このパラメータは必須です。 |
format |
追加の構成オプションを指定します。オプションは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 AI 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
| パラメータ | 説明 |
|---|---|
table_name |
外部表の名前。 |
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
partitioning_clause |
個々のパーティションの場所情報を含む、完全なパーティション化句を指定します。 ディレクトリを使用するには、パーティション化句で クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。 正規表現は、 文字"*"および"?"は、 正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致は たとえば:
|
column_list |
外部表の列名およびデータ型のカンマ区切りリスト。 |
field_list |
ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを示します。この引数の構文は、通常のOracle外部表のfield_list句と同じです。詳細は、『Oracle Database 19cユーティリティ』のfield_listまたは『Oracle Database 26aiユーティリティ』を参照してください。 |
format |
ソース・ファイルのフォーマットを説明するオプション。オプションのリストと値の指定方法は、フォーマット・パラメータを参照してください。 |
使用上のノート
-
プロシージャ
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
| パラメータ | 説明 |
|---|---|
type |
削除する操作のタイプを指定します。タイプの値は、 |
使用上のノート
DBMS_CLOUD.DELETE_ALL_OPERATIONSは、現在実行中の操作(ステータスが「実行中」の操作)は削除しません。
DELETE_FILEプロシージャ
このプロシージャは、Autonomous AI Database上の指定されたディレクトリから、指定されたファイルを削除します。
構文
DBMS_CLOUD.DELETE_FILE (
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parameters
| パラメータ | 説明 |
|---|---|
directory_name |
Autonomous AI Databaseインスタンスのディレクトリの名前。 |
file_name |
削除するファイルの名前。 |
force |
ファイルが存在しない場合、エラーを無視して報告しません。有効な値は、TRUEおよびFALSEです。デフォルト値はFALSEです。 |
ノート: ADMIN以外のユーザーでDBMS_CLOUD.DELETE_FILEを実行するには、ファイルを含むディレクトリに対する書込み権限をそのユーザーに付与する必要があります。たとえば、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
| パラメータ | 説明 |
|---|---|
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
object_uri |
削除するオブジェクトのオブジェクトまたはファイルURI。URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
force |
オブジェクトが存在しない場合、エラーを無視して報告しません。有効な値は、TRUEおよびFALSEです。デフォルト値はFALSEです。 |
例
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 |
削除するログ・ファイル・エントリに関連付けられた操作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プロシージャ
このプロシージャは、問合せの結果に基づいてAutonomous AI Databaseからデータをエクスポートします。この手順はオーバーロードされており、クラウドまたはディレクトリへのファイルの書込みをサポートしています。
このプロシージャは、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
| パラメータ | 説明 |
|---|---|
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 資格証明パラメータが含まれていない場合、ディレクトリへの出力が指定されます。 |
file_uri_list |
formatパラメータの値および資格証明パラメータを含めるかどうかに応じて、様々な形式があります。
URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
format |
エクスポート形式オプションを提供するJSON文字列。 サポートされるオプションは次のとおりです。
EXPORT_DATAのDBMS_CLOUDパッケージ形式オプションを参照してください。 |
query |
このパラメータを使用して、必要なデータのみがエクスポートされるように
たとえば: |
operation_id |
このパラメータを使用して、エクスポート操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡します。 |
使用上のノート
-
指定する
queryパラメータ値は、必要に応じて、結合や副問合せを含む問合せなどの拡張問合せにすることができます。 -
指定された書式パラメータに応じて、
DBMS_CLOUD.EXPORT_DATAは、指定された問合せの結果をクラウド・オブジェクト・ストアに出力するか、CSV、JSON、ParquetまたはXMLファイル形式のディレクトリの場所に出力します。DBMS_CLOUD.EXPORT_DATAをCSV、JSON、ParquetまたはXML出力ファイルとともに使用する方法の詳細は、DBMS_CLOUD.EXPORT_DATAを使用したテキストとしてのオブジェクト・ストアへのデータのエクスポートおよびDBMS_CLOUD.EXPORT_DATAを使用したディレクトリへのデータのエクスポートを参照してください。 -
CSV、JSONまたはXML出力の場合、デフォルトでは、生成されたファイルに10MBのデータが含まれていると、新しい出力ファイルが作成されます。ただし、結果データが10MB未満の場合は、データベース・サービスおよびAutonomous AI DatabaseインスタンスのECPU (OCPUが使用されている場合はOCPU)の数に応じて、複数の出力ファイルが存在する可能性があります。
詳細は、テキスト出力(CSV、JSON、ParquetまたはXML)のファイル・ネーミングを参照してください。
CSV、JSONまたはXMLの場合、デフォルトの出力ファイル・チャンク・サイズは10MBです。この値は、
formatパラメータのmaxfilesizeオプションを使用して変更できます。詳細は、「EXPORT_DATAのDBMS_CLOUDパッケージ形式オプション」を参照してください。 -
CSV、JSONまたはXML出力の場合、デフォルトでは、生成されたファイルに10MBのデータが含まれていると、新しい出力ファイルが作成されます。ただし、結果データが10MB未満の場合は、データベース・サービスおよびAutonomous AI DatabaseインスタンスのECPU (OCPUが使用されている場合はOCPU)の数に応じて、複数の出力ファイルが存在する可能性があります。
詳細は、テキスト出力(CSV、JSON、ParquetまたはXML)のファイル・ネーミングを参照してください。
-
parquet出力形式は、専用Exadataインフラストラクチャ上のAutonomous AI 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
例
例: jsonという値を持つtypeパラメータの書式を使用した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;
/
例: xmlという値を持つtypeパラメータの書式を使用した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;
/
例: csvという値を持つtypeパラメータの書式を使用した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 AI Databaseにコピーします。このファンクション・フォームは、Cloud Object Storageからオブジェクトを読み取り、Autonomous AI DatabaseにBLOBを返します。
構文
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
| パラメータ | 説明 |
|---|---|
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
object_uri |
オブジェクトまたはファイルURI。URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
directory_name |
データベース上のディレクトリの名前。(後述の「脚注1」を参照) |
file_name |
作成するファイルの名前を指定します。ファイル名を指定しない場合、ファイル名はobject_uriパラメータの最後のスラッシュの後から取得されます。たとえば、ファイル名にスラッシュが含まれるような特殊なケースでは、file_nameパラメータを使用してください。 |
startoffset |
プロシージャが読取りを開始するオフセット(バイト)。 |
endoffset |
プロシージャが読取りを停止するオフセット(バイト)。 |
compression |
オブジェクトの格納に使用する圧縮を指定します。compressionが'AUTO'に設定されている場合、ファイルは圧縮解除されます(値'AUTO'は、object_uriで指定されたオブジェクトがGzipで圧縮されることを意味します)。 |
脚注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
| パラメータ | 説明 |
|---|---|
directory_name |
データベース上のディレクトリの名前。このパラメータは、ワイルドカードをサポートしています。 |
使用上のノート
-
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を返します。DBMS_CLOUD.LIST_FILESでは、directory:filename構文を使用してファイルを選択的にフィルタリングできます。ワイルドカードはファイル名でサポートされています。
例
例: 次の問合せを使用して、各ファイルの行を戻すパイプライン・ファンクションとしてDBMS_CLOUD.LIST_FILESを使用します。
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
DBMS_CLOUD.LIST_FILESは、ファイルを指定するかワイルドカードを使用して、DIRECTORY:FILE構文とともに使用することもできます。サポートされているワイルドカード文字は、*および?です。
例: ワイルド・カードを使用してディレクトリDATA_PUMP_DIRの"f"で始まるすべてのCSVファイルをリストします。
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f*.csv');
例: ファイル名を指定するディレクトリDATA_PUMP_DIR内のファイルf1.csvをリストします。
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f1.csv');
LIST_OBJECTSファンクション
このファンクションは、オブジェクト・ストアの指定された場所にあるオブジェクトを一覧表示します。結果には、オブジェクト名と、オブジェクトに関する追加のメタデータ(サイズ、チェックサム、作成タイムスタンプ、最終変更タイムスタンプなど)が含まれます。
構文
DBMS_CLOUD.LIST_OBJECTS (
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
Parameters
| パラメータ | 説明 |
|---|---|
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
location_uri |
オブジェクト・ストレージ・バケットまたはフォルダURI。URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。 ワイルドカードは、URI内のファイルまたはサブフォルダを選択的にリストするためにサポートされています。文字" ワイルドカードを使用した例: |
使用上のノート
-
オブジェクト・ストアの機能に応じて、
DBMS_CLOUD.LIST_OBJECTSは特定の属性の値を返さず、この場合、フィールドの戻り値はNULLです。サポートされているすべてのオブジェクト・ストアが、
OBJECT_NAME、BYTESおよびCHECKSUMフィールドの戻り値を返します。次の表に、オブジェクト・ストアによるフィールドCREATEDおよびLAST_MODIFIEDのサポートを示します。オブジェクト・ストア CREATEDLAST_MODIFIEDOracle Cloud Infrastructureネイティブ タイムスタンプを返します タイムスタンプを返します Oracle Cloud Infrastructure Swift NULLを戻します。タイムスタンプを返します Amazon S3 NULLを戻します。タイムスタンプを返します Amazon S3互換 NULLを戻します。タイムスタンプを返します Azure タイムスタンプを返します タイムスタンプを返します -
チェックサム値は、MD5チェックサムです。これは、オブジェクトの内容に基づいて計算される32文字の18進数です。
-
これは、戻り値のタイプが
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プロシージャ
このプロシージャは、あるCloud Object Storageバケットまたはフォルダから別のCloud Object Storageバケットまたはフォルダにオブジェクトを移動します。
ソース・バケットおよびターゲット・バケットまたはフォルダは、同じクラウド・オブジェクト・ストア・プロバイダまたは異なるクラウド・オブジェクト・ストア・プロバイダに配置できます。
ソースとターゲットが別々のオブジェクト・ストアにある場合、または同じクラウド・プロバイダで異なるアカウントを持つ場合は、ソースとターゲットの場所に別々の資格証明名を指定できます。
ソース資格証明名は、ターゲット資格証明名が指定されていない場合、ターゲットの場所でもデフォルトで使用されます。
構文
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
| パラメータ | 説明 |
|---|---|
source_credential_name |
ソース・クラウドのオブジェクト・ストレージにアクセスするための資格証明の名前です。
|
source_object_uri |
ソースのオブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
target_object_uri |
ファイルを移動する必要があるターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。 このパラメータは必須です。 URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
target_credential_name |
ターゲットのクラウド・オブジェクト・ストレージの場所にアクセスするための資格証明の名前です。
|
例
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プロシージャ
このプロシージャはオーバーロードされています。このプロシージャは、1つの形式でAutonomous AI DatabaseからCloud Object Storageファイルにファイルをコピーします。別の形式では、このプロシージャには、Autonomous AI DatabaseからCloud Object Storageに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
| パラメータ | 説明 |
|---|---|
credential_name |
クラウド・オブジェクト・ストレージにアクセスするための資格証明の名前。 |
object_uri |
オブジェクトまたはファイルURI。URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。 |
directory_name |
データベース上のディレクトリの名前。(後述の「脚注1」を参照) |
contents |
Autonomous AI Databaseからクラウド・オブジェクト・ストレージにコピーするBLOBを指定します。 |
file_name |
指定されたディレクトリ内のファイルの名前。 |
compression |
オブジェクトの格納に使用する圧縮を指定します。 デフォルト値: |
脚注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;
/
使用上のノート
Cloud Object Storageに応じて、転送するオブジェクトのサイズは次のように制限されます:
| Cloud Object Storageサービス | オブジェクト転送サイズ制限 |
|---|---|
| Oracle Cloud Infrastructure Object Storage | 50GB |
| Amazon S3 | 5GB |
| Azure Blobストレージ | 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
| パラメータ | 説明 |
|---|---|
table_name |
ターゲット表の名前。DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLEを実行する前に、ターゲット表を作成する必要があります。 |
schema_name |
ターゲット表が存在するスキーマの名前。デフォルト値はNULLで、ターゲット表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
update_columns |
新しいファイルによって、スキーマが変更される可能性があります。サポートされる更新には、新しい列、削除された列が含まれます。既存の列に対する更新。たとえば、データ型の変更によってエラーがスローされます。 デフォルトの値: False |
VALIDATE_EXTERNAL_PART_TABLEプロシージャ
このプロシージャにより、外部パーティション表のソース・ファイルが検証され、ログ情報が生成され、外部表に指定したフォーマット・オプションと一致しない行がAutonomous AI 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
| パラメータ | 説明 |
|---|---|
table_name |
外部表の名前。 |
operation_id |
このパラメータを使用して、USER_LOAD_OPERATIONSビューで、ロード操作の進行状況および最終ステータスを対応するIDとして追跡します。 |
partition_name |
定義すると、特定のパーティションのみが検証されます。指定しない場合は、rowcountに達するまで、すべてのパーティションを順次読み取ります。 |
subpartition_name |
定義した場合、特定のサブパーティションのみが検証されます。指定しない場合は、rowcountに達するまで、すべての外部パーティションまたはサブパーティションから順次読み取ります。 |
schema_name |
外部表が存在するスキーマの名前。デフォルト値はNULLで、外部表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
rowcount |
スキャンされる行数。デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされることを意味します。 |
partition_key_validation |
内部使用のみ。このパラメータは使用しないでください。 |
stop_on_error |
行が拒否されたときに検証を停止するかどうかを決定します。デフォルト値はTRUEで、最初に拒否された行で検証を停止することを意味します。値をFALSEに設定すると、最初に拒否された行で検証を停止せず、rowcountパラメータに指定された値までのすべての行を検証することを指定します。 |
VALIDATE_EXTERNAL_TABLEプロシージャ
このプロシージャでは、外部表のソース・ファイルを検証し、ログ情報を生成して、Autonomous AI 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
| パラメータ | 説明 |
|---|---|
table_name |
外部表の名前。 |
operation_id |
このパラメータを使用して、USER_LOAD_OPERATIONSビューで、ロード操作の進行状況および最終ステータスを対応するIDとして追跡します。 |
schema_name |
外部表が存在するスキーマの名前。デフォルト値はNULLで、外部表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
rowcount |
スキャンされる行数。デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされることを意味します。 |
stop_on_error |
行が拒否されたときに検証を停止するかどうかを決定します。デフォルト値は 外部表がAvro、ORCまたはParquetファイルのいずれかを参照している場合、検証が最初に拒否された行で停止します。 外部表で |
使用上のノート
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLEは、パーティション化された外部表とハイブリッド・パーティション表の両方で機能します。これは、rowcountに達するか、stop_on_errorが適用されるまで、場合によってはすべての外部パーティションからデータを読み取ります。読み取るパーティションまたはパーティションの部分の順序は制御できません。
VALIDATE_HYBRID_PART_TABLEプロシージャ
このプロシージャにより、ハイブリッド・パーティション表のソース・ファイルが検証され、ログ情報が生成され、ハイブリッド表に指定されたフォーマット・オプションと一致しない行がAutonomous AI 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
| パラメータ | 説明 |
|---|---|
table_name |
外部表の名前。 |
operation_id |
このパラメータを使用して、USER_LOAD_OPERATIONSビューで、ロード操作の進行状況および最終ステータスを対応するIDとして追跡します。 |
partition_name |
定義すると、特定のパーティションのみが検証されます。指定しない場合は、rowcountに達するまで、すべての外部パーティションから順次読み取ります。 |
subpartition_name |
定義した場合、特定のサブパーティションのみが検証されます。指定しない場合は、rowcountに達するまで、すべての外部パーティションまたはサブパーティションから順次読み取ります。 |
schema_name |
外部表が存在するスキーマの名前。デフォルト値はNULLで、外部表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。 |
rowcount |
スキャンされる行数。デフォルト値はNULLで、ソース・ファイル内のすべての行がスキャンされることを意味します。 |
partition_key_validation |
内部使用のみ。このパラメータは使用しないでください。 |
stop_on_error |
行が拒否されたときに検証を停止するかどうかを決定します。デフォルト値はTRUEで、最初に拒否された行で検証を停止することを意味します。値をFALSEに設定すると、最初に拒否された行で検証を停止せず、rowcountパラメータに指定された値までのすべての行を検証することを指定します。 |