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
にデータをコピーします。
ディレクトリ内のファイル名を指定する場合、正規表現はサポートされません。ワイルドカードを使用して、ディレクトリ内のファイル名のみを指定できます。文字"*"は複数文字のワイルドカードとして使用でき、文字"?"は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
フォーマット・オプションを参照してください。 -
コロン(:)、一重引用符(')、カンマ(、)などの特殊文字は、ディレクトリ名ではサポートされていません。