用于批量文件管理的 DBMS_CLOUD
Prerequisites
作为开发人员,您可以将 DBMS_CLOUD 过程与部署在 Oracle Public Cloud、Multicloud 或 Exadata Cloud@Customer 上的自治 AI 数据库结合使用。
根据部署选择,必须满足以下先决条件,才能将 DBMS_CLOUD 过程与 Amazon S3、Azure Blob Storage 和 Google Cloud Storage 服务提供商结合使用。
组管理员必须使用 NAT 网关配置出站连接,如下所述:
-
按照 Oracle Cloud Infrastructure 文档中的创建 NAT 网关中的说明,在自治 AI 数据库资源所在的虚拟云网络 (VCN) 中创建 NAT 网关。
-
创建 NAT 网关后,在自治 AI 数据库资源所在的 VCN 中添加路由规则和出站安全规则到每个子网,以便这些资源可以使用网关从 Azure AD 实例获取公钥:
-
转到子网的 Subnet Details(子网详细信息)页面。
-
在 Subnet Information(子网信息)选项卡中,单击子网的 Route Table(路由表)的名称以显示 Route Table Details(路由表详细信息)页面。
-
在现有路由规则表中,检查是否已存在具有以下特征的规则:
-
目标:0.0.0.0/0
-
目标类型:NAT 网关
-
目标:刚在 VCN 中创建的 NAT 网关的名称
如果不存在此类规则,请单击添加路由规则并添加具有这些特征的路由规则。
-
-
返回到子网的子网详细信息页面。
-
在子网的安全列表表中,单击子网的安全列表的名称以显示其安全列表详细信息页。
-
在侧边菜单的资源下,单击出站规则。
-
在现有出站规则表中,检查是否已存在具有以下特征的规则:
-
目标类型: CIDR
-
目标:0.0.0.0/0
-
IP 协议: TCP
-
源端口范围:443
-
目标端口范围:全部
如果不存在此类规则,请单击添加出站规则并添加具有这些特征的出站规则。
-
-
您环境中的 HTTP 代理设置必须允许数据库访问云服务提供商。
这些设置由组管理员在创建 Exadata Cloud@Customer 基础结构时定义,如 Using the Console to Provision Exadata Database Service on Cloud@Customer 中所述。
注:只有在 Exadata 基础结构处于 Requires Activation 状态之前,才能编辑包括 HTTP 代理的网络配置。一旦激活,您就无法编辑这些设置。
为已预配的 Exadata 基础结构设置 HTTP 代理需要 My Oracle Support 中的服务请求 (SR)。有关详细信息,请参见在 My Oracle Support 中创建服务请求。
用于批量文件管理的 DBMS_CLOUD 子程序概要
DBMS_CLOUD 程序包中用于批量文件操作的子程序。
| 子程序 | 说明 |
|---|---|
| BULK_COPY 过程 | 此过程将文件从一个云对象存储桶复制到另一个云对象存储桶。 |
| BULK_DELETE 过程 | 该过程从云对象存储存储桶或文件夹中删除文件。 |
| BULK_DOWNLOAD 过程 | 此过程将文件从云对象存储存储桶下载到自治 AI 数据库中的目录。 |
| BULK_MOVE 过程 | 此过程将文件从一个云对象存储桶移到另一个云对象存储桶。 |
| BULK_UPLOAD 过程 | 此过程将文件从自治 AI 数据库中的目录上载到云对象存储。 |
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 (参数) | 说明 |
|---|---|
source_credential_name |
用于访问云对象存储的身份证明的名称。 如果不提供 |
source_location_uri |
指定指向源对象存储存储桶或文件夹位置的 URI。 此参数是必需的。 云源文件 URI 您可以在云源文件 URI 中的文件名中使用通配符和正则表达式。 正则表达式只能在 当 仅 URI 中的文件名或子文件夹路径支持正则表达式模式,模式匹配与 使用正则表达式示例: 使用通配符的示例: URI 的格式取决于您使用的云对象存储服务,有关详细信息,请参见 Cloud Object Storage URI Formats 。 有关 |
target_location_uri |
指定目标对象存储存储桶或文件夹的 URI,需要在其中复制文件。 此参数是必需的。 指定指向源对象存储存储桶或文件夹位置的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
target_credential_name |
用于访问目标云对象存储位置的身份证明的名称。 如果不提供 |
regex_filter |
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果不提供 有关更多信息,请参见 REGEXP_LIKE Condition 。 |
format |
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果不提供 |
operation_id |
使用此参数以 USER_LOAD_OPERATIONS 视图中相应 ID 的身份跟踪加载操作的进度和最终状态。 |
注:当源和目标 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 (参数) | 说明 |
|---|---|
credential_name |
用于访问云对象存储的身份证明的名称。 如果不提供 |
location_uri |
指定指向自治 AI 数据库中的对象存储位置的 URI。 此参数是必需的。 云源文件 URI 您可以在云源文件 URI 中的文件名中使用通配符和正则表达式。 正则表达式只能在 当 仅 URI 中的文件名或子文件夹路径支持正则表达式模式,模式匹配与 例如: URI 的格式取决于您使用的云对象存储服务,有关详细信息,请参见 Cloud Object Storage URI Formats 。 有关 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
regex_filter |
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果不提供 有关更多信息,请参见 REGEXP_LIKE Condition 。 |
format |
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果不提供 |
operation_id |
使用此参数以 USER_LOAD_OPERATIONS 视图中相应 ID 的身份跟踪加载操作的进度和最终状态。 |
范例
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 过程
此过程将文件从云对象存储下载到自治 AI 数据库目录中。使用重载表单可以使用 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 (参数) | 说明 |
|---|---|
credential_name |
用于访问云对象存储的身份证明的名称。 如果不提供 |
location_uri |
指定指向自治 AI 数据库中的对象存储位置的 URI。 此参数是必需的。 云源文件 URI 您可以在云源文件 URI 中的文件名中使用通配符和正则表达式。 正则表达式只能在 当 仅 URI 中的文件名或子文件夹路径支持正则表达式模式,模式匹配与 例如: URI 的格式取决于您使用的云对象存储服务,有关详细信息,请参见 Cloud Object Storage URI Formats 。 有关 |
directory_name |
自治 AI 数据库上要从其中下载文件的目录的名称。 此参数是必需的。 |
regex_filter |
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果不提供 有关更多信息,请参见 REGEXP_LIKE Condition 。 |
format |
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果不提供 |
operation_id |
使用此参数以 USER_LOAD_OPERATIONS 视图中相应 ID 的身份跟踪加载操作的进度和最终状态。 |
范例
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 (参数) | 说明 |
|---|---|
source_credential_name |
用于访问源云对象存储的身份证明的名称。 如果不提供 |
source_location_uri |
指定指向源对象存储存储桶或文件夹位置的 URI。 此参数是必需的。 云源文件 URI 您可以在云源文件 URI 中的文件名中使用通配符和正则表达式。 正则表达式只能在 当 仅 URI 中的文件名或子文件夹路径支持正则表达式模式,模式匹配与 使用正则表达式示例: 使用通配符的示例: URI 的格式取决于您使用的云对象存储服务,有关详细信息,请参见 Cloud Object Storage URI Formats 。 有关 |
target_location_uri |
指定目标对象存储存储桶或文件夹的 URI,需要在其中移动文件。 此参数是必需的。 URI 的格式取决于您使用的云对象存储服务,有关详细信息,请参见 Cloud Object Storage URI Formats 。 |
target_credential_name |
用于访问目标云对象存储位置的身份证明的名称。 如果不提供 |
regex_filter |
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果不提供 有关更多信息,请参见 REGEXP_LIKE Condition 。 |
format |
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果不提供 |
operation_id |
使用此参数以 USER_LOAD_OPERATIONS 视图中相应 ID 的身份跟踪加载操作的进度和最终状态。 |
范例
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 指向同一对象存储存储桶或文件夹时,将返回错误。
BULK_UPLOAD 过程
此过程将文件从自治 AI 数据库目录复制到云对象存储。使用重载表单可以使用 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 (参数) | 说明 |
|---|---|
credential_name |
用于访问云对象存储的身份证明的名称。 如果不提供 |
location_uri |
指定指向要上载文件的对象存储位置的 URI。 此参数是必需的。 URI 的格式取决于云对象存储服务。有关更多信息,请参见 DBMS_CLOUD Package File Cloud Object Storage URI Formats 。 |
directory_name |
自治 AI 数据库上从其中上载文件的目录的名称。 此参数是必需的。 目录 可以指定一个目录和一个或多个文件名,也可以使用逗号分隔的目录和文件名列表。指定目录的格式为: 在目录中指定文件名时,不支持正则表达式。只能使用通配符指定目录中的文件名。字符 "*" 可以用作表示多个字符的通配符,字符 "?" 可以用作表示单个字符的通配符。例如: 要指定多个目录,请使用逗号分隔的目录列表:例如: 使用双引号指定区分大小写的目录名称。例如: 要包含引号字符,请使用两个引号。例如: |
regex_filter |
指定用于过滤文件的 REGEX 表达式。REGEX 表达式模式必须与 如果不提供 有关更多信息,请参见 REGEXP_LIKE Condition 。 |
format |
指定文件操作的其他配置选项。这些选项指定为 JSON 字符串。 支持的格式选项包括:
如果不提供 |
operation_id |
使用此参数以 USER_LOAD_OPERATIONS 视图中相应 ID 的身份跟踪加载操作的进度和最终状态。 |
范例
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;
/