資格証明の作成と既存表へのデータのコピー

クラウド内のファイルからデータをロードする場合、最初にオブジェクト・ストレージ資格証明をAutonomous Databaseに保存してから、プロシージャDBMS_CLOUD.COPY_DATAを使用してデータをロードする必要があります。

この例のソース・ファイルchannels.txtには、次のデータが含まれています:

S,Direct Sales,Direct
T,Tele Sales,Direct
C,Catalog,Indirect
I,Internet,Indirect
P,Partners,Others
  1. DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用してオブジェクト・ストアの資格証明を格納しますたとえば:
    SET DEFINE OFF
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password'
      );
    END;
    /

    この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。オブジェクト・ストアの資格証明を変更しないかぎり、このステップが必要なのは1回のみです。資格証明を格納した後は、すべてのデータ・ロードで同じ資格証明名を使用できます。

    パラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。

    ノート

    SQL*PlusやSQL Developerなどのツールの中には、アンパサンド文字(&)を特殊文字として使用するものもあります。パスワードにアンパサンド文字が含まれる場合、例に示されているとおり、それらのツールでSET DEFINE OFFコマンドを使用して特殊文字を無効化し、資格証明を適切に作成します。
  2. DBMS_CLOUD.COPY_DATAプロシージャを使用して、既存の表にデータをロードしますたとえば:
    CREATE TABLE CHANNELS
       (channel_id CHAR(1),
        channel_desc VARCHAR2(20),
        channel_class VARCHAR2(20)
       );
    /
    
    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;
    /
    

    パラメータは次のとおりです。

    • table_name: ターゲット表の名前です。

    • credential_name: 前のステップで作成された資格証明の名前です。credential_nameパラメータは、Oracleオブジェクトのネーミング規則に準拠している必要があります。詳細は、「データベース・オブジェクトのネーミング規則」を参照してください。

    • file_uri_list: ロードするソース・ファイルのカンマ区切りリストです。

    • format: ファイル・タイプがテキスト、ORK、ParquetまたはAvroのいずれであるかなど、ソース・ファイル形式を記述するために指定できるオプションを定義します。

      ソース・ファイル内のデータが暗号化されている場合は、encryptionオプションでformatパラメータを指定して、データを復号化します。データの復号化の詳細は、オブジェクト・ストレージからのインポート中のデータの復号化を参照してください。

    この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

    ノート

    Autonomous Databaseは、圧縮データ形式を含む様々なソース・ファイル形式をサポートしています。サポートされている圧縮タイプについては、「DBMS_CLOUDパッケージ・フォーマット・オプション」およびDBMS_CLOUD compressionフォーマット・オプションを参照してください。

    パラメータの詳細は、「COPY_DATAプロシージャ」および「Avro、ORCまたはParquetファイル用COPY_DATAプロシージャ」を参照してください。