DBMS_CLOUD 用于批量文件管理
DBMS_CLOUD 软件包中用于批量文件操作的子程序。
子程序 | 说明 |
---|---|
BULK_COPY 过程 |
此过程将文件从一个云对象存储存储桶复制到另一个存储桶。 |
BULK_DELETE 过程 |
该过程从云对象存储存储桶或文件夹中删除文件。 |
BULK_DOWNLOAD 过程 |
此过程将文件从 Cloud Object Store 存储桶下载到 Autonomous Database 中的目录。 |
BULK_MOVE 过程 |
此过程将文件从一个云对象存储存储桶移至另一个存储桶。 |
BULK_UPLOAD 过程 |
此过程将文件从 Autonomous Database 中的目录上载到 Cloud Object Storage。 |
相关主题
Prerequisites
作为开发人员,您可以将 DBMS_CLOUD 过程与部署在 Oracle Public Cloud 、 Multicloud 或 Exadata Cloud@Customer 上的 Autonomous Database 结合使用。
根据部署选择,必须满足以下先决条件,才能将 DBMS_CLOUD 过程与 Amazon S3 、Azure Blob Storage 和 Google Cloud Storage 服务提供商一起使用。
- 按照 Oracle Cloud Infrastructure 文档中的创建 NAT 网关中的说明,在 Autonomous Database 资源所在的虚拟云网络 (Virtual Cloud Network,VCN) 中创建 NAT 网关。
- 创建 NAT 网关后,向 每个子网(在 VCN 中)添加路由规则和出站安全规则,Autonomous Database 资源位于其中,以便这些资源可以使用网关从 Azure AD 实例获取公钥:
- 转到子网的子网详细信息页。
- 在子网信息选项卡中,单击子网的路由表的名称以显示其路由表详细信息页。
- 在现有路由规则表中,检查是否已存在具有以下特征的规则:
- 目标:0.0.0.0/0
- 目标类型:NAT 网关
- 目标:刚在 VCN 中创建的 NAT 网关的名称
如果不存在此类规则,请单击添加路由规则并添加具有这些特征的路由规则。
- 返回到子网的子网详细信息页。
- 在子网的安全列表表中,单击子网的安全列表的名称以显示其安全列表详细信息页。
- 在侧边菜单的资源下,单击出站规则。
- 在现有出站规则表中,检查是否已存在具有以下特征的规则:
- 目标类型: CIDR
- 目标:0.0.0.0/0
- IP 协议: TCP
- 源端口范围: 443
- 目标端口范围:全部
如果不存在此类规则,请单击添加出站规则并添加具有这些特征的出站规则。
环境中的 HTTP 代理设置必须允许数据库访问云服务提供商。
注意:
只有在 Exadata 基础结构处于 Requires Activation 状态之前,才能编辑包括 HTTP 代理的网络配置。一旦激活,就无法编辑这些设置。为已预配的 Exadata 基础结构设置 HTTP 代理需要在 My Oracle Support 中创建服务请求 (SR)。有关详细信息,请参见在 My Oracle Support 中创建服务请求。
BULK_COPY 过程
此过程会将文件从一个云对象存储桶批量复制到另一个云对象存储桶。使用重载的表单可以使用 operation_id
参数。
您可以使用与 REGEXP_LIKE
运算符兼容的正则表达式模式来过滤要删除的文件列表。
源和目标存储桶或文件夹可以位于相同或不同的云对象存储提供程序中。
当源和目标位于不同的对象存储中或者具有具有相同云提供商的不同账户时,您可以为源和目标位置提供单独的身份证明名称。
默认情况下,源身份证明名称也由目标位置使用。
语法
DBMS_CLOUD.BULK_COPY
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_COPY
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
参数
Parameter (参数) | 说明 |
---|---|
|
用于访问云对象存储的身份证明的名称。 如果未提供 |
|
指定指向源对象存储存储桶或文件夹位置的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
|
指定需要复制文件的目标对象存储存储桶或文件夹的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
|
用于访问目标云对象存储位置的身份证明的名称。 如果未提供 |
|
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果未提供 有关更多信息,请参见REGEXP_LIKE Condition 。 |
|
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果未提供 |
|
使用此参数以 |
使用说明
-
源 URI 和目标 URI 指向同一对象存储存储桶或文件夹时出错。
范例
BEGIN
DBMS_CLOUD.BULK_COPY
(
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
BULK_DELETE 过程
此过程从云对象存储批量删除文件。使用重载的表单可以使用 operation_id
参数。您可以使用与 REGEXP_LIKE
运算符兼容的正则表达式模式来过滤要删除的文件列表。
语法
DBMS_CLOUD.BULK_DELETE
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_DELETE
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
参数
Parameter (参数) | 说明 |
---|---|
|
用于访问云对象存储的身份证明的名称。 如果未提供 |
|
指定指向 Autonomous Database 中对象存储位置的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
|
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果未提供 有关更多信息,请参见REGEXP_LIKE Condition 。 |
|
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果未提供 |
|
使用此参数以 |
范例
BEGIN
DBMS_CLOUD.BULK_DELETE
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
format => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKDEL')
);
END;
/
BULK_DOWNLOAD 过程
此过程将文件从云对象存储下载到 Autonomous Database 目录中。使用重载的表单可以使用 operation_id
参数。您可以使用与 REGEXP_LIKE
运算符兼容的正则表达式模式过滤要下载的文件列表。
语法
DBMS_CLOUD.BULK_DOWNLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_DOWNLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
参数
Parameter (参数) | 说明 |
---|---|
|
用于访问云对象存储的身份证明的名称。 如果未提供 |
|
指定指向 Autonomous Database 中对象存储位置的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
|
Autonomous Database 上要从其中下载文件的目录的名称。 此参数是必需的。 |
|
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果未提供 有关更多信息,请参见REGEXP_LIKE Condition 。 |
|
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果未提供 |
|
使用此参数以 |
范例
BEGIN
DBMS_CLOUD.BULK_DOWNLOAD
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
directory_name => 'BULK_TEST',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/
BULK_MOVE 过程
此过程批量将文件从一个云对象存储存储桶或文件夹移动到另一个云对象存储桶或文件夹。使用重载的表单可以使用 operation_id
参数。
您可以使用与 REGEXP_LIKE
运算符兼容的正则表达式模式来过滤要删除的文件列表。
源和目标存储桶或文件夹可以位于相同或不同的云对象存储提供程序中。
当源和目标位于不同的对象存储中或者具有具有相同云提供商的不同账户时,您可以为源和目标位置提供单独的身份证明名称。
默认情况下,在未提供目标身份证明名称时,目标位置也会使用源身份证明名称。
移动文件的第一步是将文件复制到目标位置,然后在成功复制源文件后将其删除。
如果对象存储允许在源位置和目标位置之间重命名操作,则重命名对象而不是移动对象。
语法
DBMS_CLOUD.BULK_MOVE
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_MOVE
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_location_uri IN VARCHAR2,
target_location_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
参数
Parameter (参数) | 说明 |
---|---|
|
用于访问源云对象存储的身份证明的名称。 如果未提供 |
|
指定指向源对象存储存储桶或文件夹位置的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
|
指定需要将文件移动到的目标对象存储存储桶或文件夹的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
|
用于访问目标云对象存储位置的身份证明的名称。 如果未提供 |
|
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果未提供 有关更多信息,请参见REGEXP_LIKE Condition 。 |
|
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果未提供 |
|
使用此参数以 |
范例
BEGIN
DBMS_CLOUD.BULK_MOVE
(
source_credential_name => 'OCI_CRED',
source_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
target_location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
format => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKMOVE')
);
END;
/
注意:
源 URI 和目标 URI 指向同一对象存储存储桶或文件夹时出错。BULK_UPLOAD 过程
此过程将文件从 Autonomous Database 目录复制到 Cloud Object Storage 中。使用重载的表单可以使用 operation_id
参数。
语法
DBMS_CLOUD.BULK_UPLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.BULK_UPLOAD
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
directory_name IN VARCHAR2,
regex_filter IN VARCHAR2 DEFAULT NULL,
format IN CLOB DEFAULT NULL,
operation_id OUT NUMBER
);
参数
Parameter (参数) | 说明 |
---|---|
|
用于访问云对象存储的身份证明的名称。 如果未提供 |
|
指定指向要上载文件的对象存储位置的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
|
从中上载文件的 Autonomous Database 上的目录的名称。 此参数是必需的。 |
regex_filter |
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果未提供 有关更多信息,请参见REGEXP_LIKE Condition 。 |
|
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项有:
如果未提供 |
|
使用此参数以 |
范例
BEGIN
DBMS_CLOUD.BULK_UPLOAD
(
credential_name => 'OCI_CRED',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
directory_name => 'BULK_TEST',
format => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKUPLOAD')
);
END;
/