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_DIR
のtest.csv
から表HRDATA1
にデータをコピーします。
ディレクトリでファイル名を指定する場合、正規表現はサポートされていません。 ワイルドカードは、ディレクトリ内のファイル名を指定する場合にのみ使用できます。 文字「*」は複数の文字のワイルドカードとして使用でき、文字「?」は単一の文字のワイルドカードとして使用できます。 たとえば:'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
書式オプションを参照してください。 -
コロン(:)、一重引用符(')、comma(,)などの特殊文字は、ディレクトリ名ではサポートされていません。