オブジェクトおよびファイル用の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サービス・プロバイダで使用するには、次の前提条件を満たす必要があります。

オブジェクトおよびファイルのDBMS_CLOUDサブプログラム

DBMS_CLOUDパッケージ内のオブジェクトおよびファイル管理用のサブプログラム。

サブプログラム 説明
COPY_COLLECTIONプロシージャ このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリ内のファイルから既存のSODAコレクションにデータをロードします。
COPY_DATAプロシージャ このプロシージャは、クラウド・オブジェクト・ストレージまたはディレクトリ内のファイルから、既存のAutonomous AI Database表にデータをロードします。
Avro、ORCまたはParquetファイル用のCOPY_DATAプロシージャ

このプロシージャは、formatパラメータのtypeを値orcparquetまたはavroに設定して、クラウド内のORC、ParquetまたはAvroファイルから、またはディレクトリ内のORC、ParquetまたはAvroファイルから既存のAutonomous AI Database表にデータをロードします。

テキスト・ファイルと同様に、データはソースのAvro、ORCまたはParquetファイルから既存の内部表にコピーされます。

COPY_OBJECTプロシージャ このプロシージャは、あるCloud Object Storageバケットから別のCloud Object Storageバケットにファイルをコピーします。
CREATE_EXTERNAL_TABLEプロシージャ このプロシージャでは、クラウド内のファイルに基づいて、またはディレクトリ内のファイルに外部表を作成します。これにより、Autonomous AI Databaseから外部データに対する問合せを実行できます。
Avro、ORCまたはParquetファイル用のCREATE_EXTERNAL_TABLEプロシージャ

このプロシージャは、formatパラメータのtypeを値parquetorcまたはavroに設定することによって、クラウドまたはディレクトリにParquet、ORCまたはAvroフォーマット・ファイルを使用して外部表を作成します。

これにより、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でディレクトリを指定する場合、このパラメータは使用されません。

file_uri_list

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

クラウドのソース・ファイルURI

クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現は、regexuri formatパラメータがTRUEに設定されている場合にのみ使用できます。

文字"*"および"?"は、regexuriパラメータがFALSEに設定されている場合、ワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。

REGEXP_LIKE条件の詳細は、Oracle Database 19c SQL言語リファレンスREGEXP_LIKE条件またはOracle Database 26ai SQL言語リファレンスを参照してください。

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。例:'MY_DIR:''filename.ext'。これは、filenameが引用符(')で始まることを示します。

format

ソース・ファイルのフォーマットを説明するオプション。これらのオプションはJSON文字列として指定されます。

サポートされている形式は、characterset, compression, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, unpackarraykeyassignmentおよびkeypathです。

前述した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でディレクトリを指定する場合、このパラメータは使用されません。

file_uri_list

クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

クラウドのソース・ファイルURI

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

正規表現は、regexuri formatパラメータがTRUEに設定されている場合にのみ使用できます。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。

REGEXP_LIKE条件の詳細は、Oracle Database 19c SQL言語リファレンスREGEXP_LIKE条件またはOracle Database 26ai SQL言語リファレンスを参照してください。

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。例:'MY_DIR:''filename.ext'。これは、filenameが引用符(')で始まることを示します。

schema_name ターゲット表が存在するスキーマの名前。デフォルト値はNULLで、ターゲット表がプロシージャを実行しているユーザーと同じスキーマ内に存在することを意味します。
field_list

ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを示します。この引数の構文は、通常のOracle外部表のfield_list句と同じです。詳細は、『Oracle Database 19cユーティリティ』field_listまたは『Oracle Database 26aiユーティリティ』を参照してください。

formatパラメータのtypeオプション値がjsonの場合、このパラメータは無視されます。

field_listの使用例については、CREATE_EXTERNAL_TABLEプロシージャを参照してください。

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を値avroorcまたは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でディレクトリを指定する場合、このパラメータは使用されません。

file_uri_list

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

クラウドのソース・ファイルURI

クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現は、regexuri formatパラメータがTRUEに設定されている場合にのみ使用できます。

文字"*"および"?"は、regexuriパラメータがFALSEに設定されている場合、ワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。

REGEXP_LIKE条件の詳細は、Oracle Database 19c SQL言語リファレンスREGEXP_LIKE条件またはOracle Database 26ai SQL言語リファレンスを参照してください。

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。例:'MY_DIR:''filename.ext'。これは、filenameが引用符(')で始まることを示します。

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パッケージの形式オプション」を参照してください。

使用上のノート

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_credential_name値を指定しない場合、credential_nameNULLに設定されます。

source_object_uri

ソースのオブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。

このパラメータは必須です。

URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。

target_object_uri

ターゲット・オブジェクト・ストアのURIを指定します。

このパラメータは必須です。

URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。

target_credential_name

ターゲットのクラウド・オブジェクト・ストレージの場所にアクセスするための資格証明の名前です。

target_credential_name値を指定しない場合、target_object_urisource_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

個々のパーティションの場所情報を含む、完全なパーティション化句を指定します。

partitioning_clauseパラメータを使用する場合、file_uri_listパラメータは許可されません。

file_uri_list

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

クラウドのソース・ファイルURI

クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現は、regexuri formatパラメータがTRUEに設定されている場合にのみ使用できます。

文字"*"および"?"は、regexuriパラメータがFALSEに設定されている場合、ワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスでのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。

このオプションは、オブジェクト・ストレージ内のファイルに作成される外部表でのみサポートされます。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

パラメータfile_uri_listを使用する場合、partitioning_clauseパラメータは許可されません。

URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。

REGEXP_LIKE条件の詳細は、Oracle Database 19c SQL言語リファレンスREGEXP_LIKE条件またはOracle Database 26ai SQL言語リファレンスを参照してください。

column_list

外部表の列名およびデータ型のカンマ区切りリスト。このパラメータには、file_uri_listパラメータで指定されたデータ・ファイルのタイプに応じて、次の要件があります。

  • 非構造化ファイルでは、column_listパラメータは必須です。非構造化ファイル(CSVテキスト・ファイルなど)を使用する場合、column_listパラメータでは、データ・ファイル内のすべての列名とデータ型、およびオブジェクト名から導出されたパーティション列を指定する必要があります。

  • 構造化ファイルでは、column_listパラメータはオプションです。たとえば、Avro、ORCまたはParquetデータ・ファイルでは、column_listは必要ありません。column_listを含めない場合、formatパラメータのpartition_columnsオプションには、列名(name)とデータ型(type)の両方の指定を含める必要があります。

field_list ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを示します。この引数の構文は、通常のOracle外部表のfield_list句と同じです。詳細は、『Oracle Database 19cユーティリティ』field_listまたは『Oracle Database 26aiユーティリティ』を参照してください。
format

フォーマット・オプションpartition_columnsでは、データ・ファイルのタイプ(構造化または非構造化)に応じて、パーティション列がファイル・パスから導出されるときのパーティション列のDBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEの列名とデータ型を指定します。

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータが含まれ、データ・ファイルが非構造化(CSVテキスト・ファイルなど)の場合、partition_columnsにはデータ型は含まれません。たとえば、このタイプのpartition_columnsの指定では、次のような形式を使用します。

    '"partition_columns":["state","zipcode"]'

    データ型は、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータで指定されるため、必須ではありません。

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcolumn_listパラメータが含まれず、データ・ファイルが構造化(Avro、ORC、Parquetファイルなど)の場合、partition_columnsオプションには列名(name副句)とデータ型(type副句)の両方が含まれます。たとえば、partition_columnsの指定を次に示します。

    '"partition_columns":[ {"name":"country", "type":"varchar2(10)"}, {"name":"year", "type":"number"}, {"name":"month", "type":"varchar2(10)"}]'

データ・ファイルが構造化されておらず、type副句がpartition_columnsで指定されている場合、type副句は無視されます。

Hive形式に基づかないオブジェクト名の場合、partition_columnsで指定された列の順序は、file_uri_listパラメータで指定されたファイル・パスのオブジェクト名に表示される順序と一致する必要があります。

ソース・ファイルの形式を説明するすべてのformatパラメータ・オプションを確認するには、クラウド・オブジェクト・ストレージのURI形式を参照してください。

使用上のノート

例: 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でディレクトリまたは表のハイパーリンクURLを指定する場合、このパラメータは使用されません。

file_uri_list

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

クラウドのソース・ファイルURI

クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現は、regexuri formatパラメータがTRUEに設定されている場合にのみ使用できます。

regexuriパラメータがFALSEに設定されている場合、文字"*"および"?"はワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。

このオプションは、オブジェクト・ストレージ内のファイルに作成される外部表でのみサポートされます。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。

REGEXP_LIKE条件の詳細は、Oracle Database 19c SQL言語リファレンスREGEXP_LIKE条件またはOracle Database 26ai SQL言語リファレンスを参照してください。

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。例:'MY_DIR:''filename.ext'。これは、filenameが引用符(')で始まることを示します。

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手順」を参照してください。

使用上のノート

例: オブジェクト・ストレージでの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表の外部表を作成します。

次の特定の構成がサポートされています。

構文

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マッピングを使用して導出されます。したがって、ユーザーはcolumn_listを指定できません。

field_list 列名およびデータ型はIcebergメタデータから自動的に導出されるため、NULLである必要があります。
format

formatパラメータは、Iceberg表のタイプ、およびデータ・カタログや直接メタデータURIからの情報など、外部表の作成に使用される情報に応じて異なる構造を持ちます。

詳細は、OCIデータ・フロー・サンプルでのIcebergサポートおよびDBMS_CLOUD URIフォーマットを参照してください。

サンプル書式パラメータ

Avro、ORCまたはParquetファイル用のCREATE_EXTERNAL_TABLEプロシージャ

このプロシージャは、formatパラメータのtypeを値avroorcまたは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でディレクトリを指定する場合、このパラメータは使用されません。

file_uri_list

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

クラウドのソース・ファイルURI

クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現は、regexuri formatパラメータがTRUEに設定されている場合にのみ使用できます。

文字"*"および"?"は、regexuriパラメータがFALSEに設定されている場合、ワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。

このオプションは、オブジェクト・ストレージ内のファイルに作成される外部表でのみサポートされます。

たとえば:

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.parquet'

URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。

REGEXP_LIKE条件の詳細は、Oracle Database 19c SQL言語リファレンスREGEXP_LIKE条件またはOracle Database 26ai SQL言語リファレンスを参照してください。

ディレクトリ

1つのディレクトリと1つ以上のファイル名を指定することも、ディレクトリとファイル名のカンマ区切りリストを使用することもできます。ディレクトリを指定する形式は、'MY_DIR:filename.ext'です。デフォルトでは、ディレクトリ名MY_DIRはデータベース・オブジェクトであり、大/小文字は区別されません。ファイル名は、大/小文字が区別されます。

ワイルドカードを使用して、ディレクトリ内のファイル名を指定できます。文字"*"は複数の文字を表すワイルドカードとして、文字"?"は1つの文字を表すワイルドカードとして使用できます。例:'MY_DIR:*"または'MY_DIR:test?'

複数のディレクトリを指定するには、ディレクトリのカンマ区切りリストを使用します。例:'MY_DIR1:*, MY_DIR2:test?'

大/小文字を区別するディレクトリ名を指定するには、二重引用符を使用します。例:'"my_dir1":*, "my_dir2":Test?'

引用符文字を含めるには、2つの引用符を使用します。例:'MY_DIR:''filename.ext'。これは、filenameが引用符(')で始まることを示します。

column_list

(オプション)このフィールドが指定されている場合、スキーマ、列およびデータ型を自動的に導出するように指定するformat->schemaパラメータがオーバーライドされます。詳細は、formatパラメータを参照してください。

Avro、ORCまたはParquetソースに対してcolumn_listを指定する場合、列名は、ファイルに含まれるそれらの列と一致している必要があります。Oracleデータ型は、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パッケージの形式オプション」を参照してください。

ヒント: 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を指定できます。

credential_name値を指定しない場合、credential_nameNULL値に設定されます。

location_uri

このパラメータは、ソース・ファイルURIのカンマ区切りリストを指定します。

クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

このパラメータは必須です。

クラウドのソース・ファイルURI

このパラメータでは、ソース・ファイルURIのカンマ区切りリスト、または1つ以上のディレクトリとソース・ファイルを指定します。

正規表現は、regexuri formatパラメータがTRUEに設定されている場合にのみ使用できます。

文字"*"および"?"は、regexuriパラメータがFALSEに設定されている場合、ワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。

正規表現を使用する例:

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

ワイルドカードを使用した例:

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv

URIのフォーマットは、使用中のクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、「クラウド・オブジェクト・ストレージURIフォーマット」をご覧ください。

REGEXP_LIKE条件の詳細は、「REGEXP_LIKE条件」を参照してください。

index_name `location_uri`の場所にあるファイル上に構築する索引の名前を指定します。

このパラメータは必須です。

format

追加の構成オプションを指定します。オプションはJSON文字列として指定されます。

サポートされているフォーマット・オプションは次のとおりです。

refresh_rate: ローカル索引がリフレッシュされる頻度を分単位で指定します。新しいファイルのアップロードと削除により、索引のリフレッシュが発生します。デフォルト値は5分です。

binary_files: 索引付けするファイルの内容がバイナリかどうかを指定します。たとえば、PDF、MS-Word、デフォルト値はFALSEです。

stop_words: 索引の作成時に指定できるストップ・ワードのリストを指定します。

stop_words値は、ストップ・ワードのリストか、ストップ・ワードの表かを示します。JSON配列が指定されている場合、ストップ・ワード・パラメータはリストとして扱われます。それ以外の場合、ストップ・ワード・パラメータは、ストップ・ワードのリストで読取りに列"STOP_WORDS"が使用される表名として扱われます。

ストップワードは、次の方法を使用して指定できます。

  • JSON配列: 例: format := '{"stop_words":["king","queen"]}'
  • ストップワード表名: 例: format := '{"stop_words":"STOP_WORDS_TABLE"}'

formatパラメータを指定しない場合、formatNULL値に設定されます。

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

個々のパーティションの場所情報を含む、完全なパーティション化句を指定します。

ディレクトリを使用するには、パーティション化句でLOCATIONおよびDEFAULT DIRECTORYの値がサポートされます。

クラウドのソース・ファイルURIのファイル名には、ワイルドカードおよび正規表現を使用できます。

正規表現は、regexuri formatパラメータがTRUEに設定されている場合にのみ使用できます。

文字"*"および"?"は、regexuriパラメータがFALSEに設定されている場合、ワイルドカード文字とみなされます。regexuriパラメータがTRUEに設定されている場合、文字"*"および"?"は、指定された正規表現パターンの一部です。

正規表現パターンは、URI内のファイル名またはサブフォルダ・パスに対してのみサポートされ、パターン一致はREGEXP_LIKE関数によって実行されるものと同じです。ディレクトリ名では正規表現パターンはサポートされていません。

たとえば:

partitioning_clause => 'partition by range (col1) (partition p1 values less than (1000) external location ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.txt''),...

REGEXP_LIKE条件の詳細は、Oracle Database 19c SQL言語リファレンスREGEXP_LIKE条件またはOracle Database 26ai SQL言語リファレンスを参照してください。

column_list 外部表の列名およびデータ型のカンマ区切りリスト。
field_list ソース・ファイル内のフィールドとそのデータ型を識別します。デフォルト値はNULLで、フィールドおよびそのデータ型がcolumn_listパラメータによって決定されることを示します。この引数の構文は、通常のOracle外部表のfield_list句と同じです。詳細は、『Oracle Database 19cユーティリティ』field_listまたは『Oracle Database 26aiユーティリティ』を参照してください。
format ソース・ファイルのフォーマットを説明するオプション。オプションのリストと値の指定方法は、フォーマット・パラメータを参照してください。

使用上のノート

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

削除する操作のタイプを指定します。タイプの値は、user_load_operations表のTYPE列にあります。

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パラメータの値および資格証明パラメータを含めるかどうかに応じて、様々な形式があります。

  • formatパラメータのtype値がjsonの場合: オブジェクト・ストア上のJSONまたは指定したディレクトリの場所は、file_uri_listパラメータの値に基づいて生成されたファイル名で保存されます。詳細は、テキスト出力(CSV、JSON、ParquetまたはXML)のファイル・ネーミングを参照してください。

  • formatパラメータのtype値がdatapumpの場合、file_uri_listはダンプ・ファイルのカンマ区切りリストです。これは、オブジェクト・ストアで作成するファイルを指定します。file_uri_listでは、ワイルドカードおよび置換文字の使用はサポートされていません。

  • credential_nameパラメータが指定されていない場合は、file_uri_listにディレクトリ名を指定します。

URIのフォーマットは、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。

format

エクスポート形式オプションを提供するJSON文字列。

サポートされるオプションは次のとおりです。

  • type: type formatオプションが必要で、csv | datapump | json | parquet | xmlのいずれかの値が必要です。

EXPORT_DATAのDBMS_CLOUDパッケージ形式オプションを参照してください。

query

このパラメータを使用して、必要なデータのみがエクスポートされるようにSELECT文を指定します。この問合せは、エクスポートするファイルの内容をテキスト・ファイルCSV、JSON、ParquetまたはXMLとして、またはダンプ・ファイルとして決定します。たとえば:

SELECT warehouse_id, quantity FROM inventories

format type値がjsonの場合、各問合せ結果がチェックされ、JSONでない場合は、関数JSON_OBJECT_T.parse()で決定されるとおり、DBMS_CLOUD.EXPORT_DATAは問合せを変換して、行をJSONに変換するJSON_OBJECT関数を含めます。詳細は、『Oracle Database 19c SQL言語リファレンス』JSON_OBJECTに関する項、または『Oracle Database 26ai SQL言語リファレンス』JSON_OBJECT_Tオブジェクト・タイプに関する項および『Oracle Database 19c PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』JSON_OBJECTに関する項またはOracle Database 26ai PL/SQLパッケージ・プロシージャおよびタイプ・リファレンスに関する項を参照してください。

たとえば:

SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories)

operation_id このパラメータを使用して、エクスポート操作の進行状況および最終ステータスをUSER_LOAD_OPERATIONSビューの対応するIDとして追跡します。

使用上のノート

ディレクトリに出力する`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_OBJECTBLOBを戻します。

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 データベース上のディレクトリの名前。このパラメータは、ワイルドカードをサポートしています。

使用上のノート

例: 次の問合せを使用して、各ファイルの行を戻すパイプライン・ファンクションとして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内のファイルまたはサブフォルダを選択的にリストするためにサポートされています。文字"*"および"?"は、ワイルドカード文字とみなされます。

ワイルドカードを使用した例:

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv'

使用上のノート

これは、各オブジェクトの行を戻すパイプライン・ファンクションである。たとえば、次の問合せを使用してこのファンクションを使用します:

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_credential_name値を指定しない場合、credential_nameNULLに設定されます。

source_object_uri

ソースのオブジェクト・ストレージ・バケットまたはフォルダの場所を指すURIを指定します。

このパラメータは必須です。

URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。

target_object_uri

ファイルを移動する必要があるターゲット・オブジェクト・ストレージ・バケットまたはフォルダのURIを指定します。

このパラメータは必須です。

URIのフォーマットは、クラウド・オブジェクト・ストレージ・サービスによって異なります。詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。

target_credential_name

ターゲットのクラウド・オブジェクト・ストレージの場所にアクセスするための資格証明の名前です。

target_credential_name値を指定しない場合、target_object_urisource_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

オブジェクトの格納に使用する圧縮を指定します。

デフォルト値: NULL

脚注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

行が拒否されたときに検証を停止するかどうかを決定します。デフォルト値はTRUEで、最初に拒否された行で検証を停止することを意味します。値をFALSEに設定すると、最初に拒否された行で検証を停止せず、rowcountパラメータに指定された値までのすべての行を検証することを指定します。

外部表がAvro、ORCまたはParquetファイルのいずれかを参照している場合、検証が最初に拒否された行で停止します。

外部表でformatパラメータのtypeを値0avroorcまたはparquetに設定した場合、stop_on_errorパラメータの値は事実上、常にTRUEになる。そのため、Avroファイル、ORCファイルまたはParquetファイルを参照している外部表では、表badfileが常に空になります。

使用上のノート

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パラメータに指定された値までのすべての行を検証することを指定します。

関連コンテンツ