Autonomous Databaseのディレクトリからのデータのロード

オブジェクトストアの場所URIの代わりに、DBMS_CLOUDプロシージャーを使用してディレクトリを指定して、接続されたネットワークファイルシステム上に作成されたディレクトリを含むローカルディレクトリ内のファイルからデータをロードまたはアンロードできます。

次のプロシージャでは、file_uri_listパラメータを使用したディレクトリ内のファイルの指定がサポートされています。

  • DBMS_CLOUD.COPY_COLLECTION
  • DBMS_CLOUD.COPY_DATA
  • DBMS_CLOUD.CREATE_EXTERNAL_TABLE

次のプロシージャでは、partitioning_clauseパラメータを使用したディレクトリ内のファイルの指定がサポートされています。

  • DBMS_CLOUD.CREATE_EXTERNAL_TABLE
  • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

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

file_uri_listパラメータを使用してディレクトリを指定する場合、credential_nameパラメータを含める必要はありませんが、ディレクトリに対するREADオブジェクト権限が必要です。

たとえば、DBMS_CLOUD.COPY_DATAをコールする場合は、file_uri_listパラメータを使用してディレクトリ内のファイルを指定します。

BEGIN
  DBMS_CLOUD.COPY_DATA(
     table_name => 'HRDATA1',
     file_uri_list => 'HR_DIR:test.csv',
     format => JSON_OBJECT('type' value 'csv')  );
END;
/

この例では、ローカル・ディレクトリHR_DIRtest.csvから表HRDATA1にデータをコピーします。

ディレクトリ内のファイル名を指定する場合、正規表現はサポートされません。ワイルドカードを使用して、ディレクトリ内のファイル名のみを指定できます。文字"*"は複数文字のワイルドカードとして使用でき、文字"?"は1文字のワイルドカードとして使用できます。例:'MY_DIR:*"または'MY_DIR:test?'

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

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

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

ネットワーク・ファイル・システムのアタッチの詳細は、Autonomous Databaseへのネットワーク・ファイル・システムのアタッチを参照してください。

DBMS_CLOUDプロシージャでのディレクトリの使用に関するノート

DBMS_CLOUDプロシージャを使用し、file_uri_listパラメータでディレクトリを指定する場合は、次の点に注意してください。

  • GZIPなどのファイルの圧縮オプションは、ディレクトリ・ファイルではサポートされていません。詳細は、DBMS_CLOUDパッケージ・フォーマット・オプションcompressionフォーマット・オプションを参照してください。

  • コロン(:)、一重引用符(')、カンマ(、)などの特殊文字は、ディレクトリ名ではサポートされていません。