DBMS_CLOUD_REPO 子程序摘要

本节介绍 Autonomous Database 随附的 DBMS_CLOUD_REPO 子程序。

相关主题

Prerequisites

作为开发人员,您可以将 DBMS_CLOUD 过程与部署在 Oracle Public CloudMulticloudExadata Cloud@Customer 上的 Autonomous Database 结合使用。

根据部署选择,必须满足以下先决条件,才能将 DBMS_CLOUD 过程与 Amazon S3Azure Blob StorageGoogle Cloud Storage 服务提供商一起使用。

您的组管理员必须使用 NAT 网关配置出站连接,如下所述:
  • 按照 Oracle Cloud Infrastructure 文档中的创建 NAT 网关中的说明,在 Autonomous Database 资源所在的虚拟云网络 (Virtual Cloud Network,VCN) 中创建 NAT 网关。
  • 创建 NAT 网关后,向 每个子网(在 VCN 中)添加路由规则和出站安全规则,Autonomous Database 资源位于其中,以便这些资源可以使用网关从 Azure AD 实例获取公钥:
    1. 转到子网的子网详细信息页。
    2. 子网信息选项卡中,单击子网的路由表的名称以显示其路由表详细信息页。
    3. 在现有路由规则表中,检查是否已存在具有以下特征的规则:
      • 目标:0.0.0.0/0
      • 目标类型:NAT 网关
      • 目标:刚在 VCN 中创建的 NAT 网关的名称

      如果不存在此类规则,请单击添加路由规则并添加具有这些特征的路由规则。

    4. 返回到子网的子网详细信息页。
    5. 在子网的安全列表表中,单击子网的安全列表的名称以显示其安全列表详细信息页。
    6. 在侧边菜单的资源下,单击出站规则
    7. 在现有出站规则表中,检查是否已存在具有以下特征的规则:
      • 目标类型: 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 中创建服务请求

CREATE_BRANCH 过程

此过程在由 repo 句柄参数标识的云代码资料档案库中创建分支。

语法

PROCEDURE DBMS_CLOUD_REPO.CREATE_BRANCH(
    repo               IN   CLOB,
    branch_name        IN   VARCHAR2,
    parent_branch_name IN   VARCHAR2 DEFAULT NULL,
    parent_commit_id   IN   VARCHAR2 DEFAULT NULL
 );

参数

Parameter (参数) 说明
repo

指定系统信息库句柄。

此参数是所有云提供商必备的且受支持。

branch_name

指定资料档案库分支名称。

此参数是所有云提供商必备的且受支持。

parent_branch_name

使用指定父分支的头提交创建新分支。

所有云提供商都支持此参数。

如果未提供 parent_branch_name 值,则将 parent_branch_name 设置为 main

parent_commit_id

使用指定的系统信息库提交创建新分支。

所有云提供商都支持此参数。

如果未提供 parent_commit_id 值,则将 parent_commit_id 设置为 NULL 值。

范例

注意:

要在云代码资料档案库中创建分支,必须指定父分支或父提交 ID。
BEGIN
  DBMS_CLOUD_REPO.CREATE_BRANCH (
    repo                 => l_repo,
    branch_name          => 'test_branch',
    parent_branch_name   => 'main'
    );
END;
/

使用说明

要运行 DBMS_CLOUD_REPO.CREATE_BRANCH 过程,必须以 ADMIN 用户身份登录,或者对 DBMS_CLOUD_REPO 具有 EXECUTE 特权。

CREATE_REPOSITORY 过程

此过程创建由 repo 句柄参数标识的云代码资料档案库。

语法

PROCEDURE DBMS_CLOUD_REPO.CREATE_REPOSITORY(
      repo                 IN   CLOB,
      description          IN   CLOB     DEFAULT NULL,
      private              IN   BOOLEAN  DEFAULT TRUE
);

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。

所有云提供商都支持此参数。

description 资料档案库的简短文本说明。

GITHUB 和 AWS 云提供商支持此参数。

private

资料档案库是专用的,只能使用有效身份证明进行访问

仅 GITHUB 云提供商支持此参数。

范例

BEGIN
  DBMS_CLOUD_REPO.CREATE_REPOSITORY(
    repo        => l_repo,
    description => 'My test repo',
    private => TRUE
    );
END;
/

DELETE_BRANCH 过程

此过程删除云代码资料档案库中由 repo 句柄参数标识的分支。

语法

PROCEDURE DBMS_CLOUD_REPO.DELETE_BRANCH (
      repo              IN  CLOB, 
      branch_name       IN  VARCHAR2  DEFAULT NULL
 );

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。

此参数是所有云提供商必备的且受支持。

branch_name 从特定资料档案库中删除分支。

此参数是所有云提供商必备的且受支持。

范例

BEGIN
  DBMS_CLOUD_REPO.DELETE_BRANCH (
      repo        => l_repo,
      branch_name => 'test_branch'
  );
END;
/

使用说明

要运行 DBMS_CLOUD_REPO.DELETE_BRANCH 过程,必须以 ADMIN 用户身份登录,或者对 DBMS_CLOUD_REPO 具有 EXECUTE 特权。

DELETE_FILE 过程

此过程从由 repo 句柄参数标识的云代码资料档案库中删除文件。

语法

PROCEDURE DBMS_CLOUD_REPO.DELETE_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      commit_details    IN  CLOB      DEFAULT NULL
);

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。
file_path 用于删除资料档案库中的文件的文件路径。
branch_name 从特定分支中删除文件。
commit_details

以 JSON 文档形式提交详细信息

{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

范例

BEGIN
  DBMS_CLOUD_REPO.DELETE_FILE(
      repo        => l_repo,
      file_path   => 'scripts/test3.sql',
      branch_name => 'test_branch'
  );
END;
/

DELETE_REPOSITORY 过程

此过程将删除由 repo 句柄参数标识的云代码资料档案库。

语法

PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY(
      repo           IN   CLOB
);

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。

范例

BEGIN
  DBMS_CLOUD_REPO.DELETE_REPOSITORY(
       repo => l_repo
  );
END;
/

EXPORT_OBJECT 过程

此过程将数据库对象的 DDL 元数据上载到由 repo 句柄参数标识的云代码资料档案库。此过程是单步上载数据库对象的元数据定义的简单方法。

语法

PROCEDURE DBMS_CLOUD_REPO.EXPORT_OBJECT(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      object_type       IN  VARCHAR2,
      object_name       IN  VARCHAR2 DEFAULT NULL,
      object_schema     IN  VARCHAR2 DEFAULT NULL,
      branch_name       IN  VARCHAR2 DEFAULT NULL,
      commit_details    IN  CLOB     DEFAULT NULL,
      append            IN  BOOLEAN  DEFAULT FALSE
);

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。
file_path 用于在资料档案库中上载对象元数据的文件路径。
object_type

DBMS_METADATA 支持的对象类型。有关详细信息,请参阅 Oracle Database 19c PL/SQL Packages and Types ReferenceOracle Database 23ai PL/SQL Packages and Types Reference 中的 DBMS_METADATA:对象类型表

object_name 要检索元数据的数据库对象的名称。
object_schema 拥有数据库对象的方案。
branch_name 将文件放置到特定分支。
commit_details

以 JSON 文档形式提交详细信息:{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

append 将元数据 DDL 附加到现有文件。

使用说明

要对对象 DDL 进行定制控制,可以将 DBMS_METADATA.GET_DDLDBMS_CLOUD_REPO.PUT_FILE 一起使用。要获取对象的元数据定义,当前用户必须具有检索对象元数据的权限。有关程序包的安全要求,请参阅 Oracle Database 19c PL/SQL Packages and Types ReferenceOracle Database 23ai PL/SQL Packages and Types Reference 中的 DBMS_METADATA

范例

BEGIN
  DBMS_CLOUD_REPO.EXPORT_OBJECT(
     repo        => l_repo,
     object_type => 'PACKAGE',
     object_name => 'MYPACK',
     file_path   => 'mypack.sql'
  );
END;
/

EXPORT_SCHEMA 过程

此过程将方案中所有对象的元数据导出到由 repo 句柄参数标识的云代码资料档案库分支。

语法

PROCEDURE DBMS_CLOUD_REPO.EXPORT_SCHEMA(
     repo            IN CLOB,
     file_path       IN VARCHAR2,
     schema_name     IN VARCHAR2,
     filter_list     IN CLOB         DEFAULT NULL,
     branch_name     IN VARCHAR2     DEFAULT NULL,
     commit_details  IN CLOB         DEFAULT NULL
);

参数

Parameter (参数) 说明
repo

指定系统信息库句柄。

此参数是所有云提供商必备的且受支持。

file_path

指定要上载到存储库的方案文件的名称。

此参数是所有云提供商必备的且受支持。

schema_name

指定要将 DDL 脚本上载到云代码资料档案库分支的方案的名称。

此参数是所有云提供商必备的且受支持。

filter_list

指定 JSON 数组的 CLOB,该数组定义要包括或排除其元数据需要导出的对象的过滤条件。

所有云提供商都支持此参数。

filter_list 的 JSON 参数为:
  • match_type:指定要应用于对象类型或对象名称的过滤器的类型。

    有效的 match_type 值包括:
    • in/not_in

    • like/not_like

    • equal/not_equal

  • type:指定用于过滤的对象类型。

  • name:指定用于过滤的对象的名称。

branch_name

指定资料档案库分支名称。

所有云提供商都支持此参数。

如果未提供 branch_name 值,则将 branch_name 设置为默认系统信息库分支。

commit_details

以 JSON 文档形式提交详细信息

{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

所有云提供商都支持此参数。

如果未提供 commit_details 值,则会将 commit_details 设置为默认提交消息,其中包括有关当前数据库会话用户和执行提交的数据库名称的信息。

范例

BEGIN
  DBMS_CLOUD_REPO.EXPORT_SCHEMA(
    repo          => l_repo,
    schema_name   => 'USER1',
    file_path     => 'myschema_ddl.sql'
    filter_list   =>
        to_clob('[    
             { "match_type":"equal",
                 "type":"table"
             },
             { "match_type":"not_equal",
                 "type":"view"
             },
             { "match_type":"in",
                 "type":"table",
                 "name": " ''EMPLOYEE_SALARY'',''EMPLOYEE_ADDRESS'' "
             },
             { "match_type":"equal",
                 "type":"sequence",
                 "name": "EMPLOYEE_RECORD_SEQ"
             },
             { "match_type":"like",
                 "type":"table",
                 "name": "%OFFICE%"
             }    
        ]'
     );
  );
END;
/

使用说明

要运行 DBMS_CLOUD_REPO.EXPORT_SCHEMA 过程,必须以 ADMIN 用户身份登录,或者对 DBMS_CLOUD_REPO 具有 EXECUTE 特权。

GET_FILE 过程和函数

该函数从云代码资料档案库下载文件的内容。该过程允许您从云代码资料档案库下载文件的内容,并将文件保存在目录中。

语法

FUNCTION DBMS_CLOUD_REPO.GET_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      tag_name          IN  VARCHAR2  DEFAULT NULL,
      commit_name       IN  VARCHAR2  DEFAULT NULL
) RETURN CLOB;
 
PROCEDURE DBMS_CLOUD_REPO.GET_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      directory_name    IN  VARCHAR2,
      target_file_name  IN  VARCHAR2  DEFAULT NULL,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      tag_name          IN  VARCHAR2  DEFAULT NULL,
      commit_name       IN  VARCHAR2  DEFAULT NULL
);

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。
file_path 资料档案库中的文件路径。
directory_name 用于保存文件内容的目录对象名称。
target_file_name 用于将内容保存在目录中的目标文件名。
branch_name 从特定分支获取文件。
tag_name 从特定标记获取文件。
commit_name 从特定提交中获取文件。

范例

BEGIN
  DBMS_CLOUD_REPO.GET_FILE(
     repo             =>  l_repo,
     file_path        => 'test3.sql',
     directory_name   => 'DATA_PUMP_DIR',
     target_file_name => 'test2.sql'
  );
END;
/

INIT_AWS_REPO 函数

此函数初始化 AWS 资料档案库句柄并返回不透明类型。

语法

FUNCTION DBMS_CLOUD_REPO.INIT_AWS_REPO(
      credential_name IN  VARCHAR2,
      repo_name       IN  VARCHAR2,
      region          IN  VARCHAR2
)  RETURN repo;

参数

Parameter (参数) 说明
credential_name

指定 AWS CodeCommit 访问密钥/密钥的身份证明对象。

repo_name 指定资料档案库名称。
region 指定 CodeCommit 资料档案库的 AWS 区域。

范例

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_AWS_REPO(
                 credential_name => 'AWS_CRED',
                 repo_name       => 'my_repo',
                 region          => 'us-east-1'
           );
END;
/  

INIT_AZURE_REPO 函数

此函数初始化 Azure 资料档案库句柄并返回不透明类型。仅 Azure 云提供商支持此功能。

语法

FUNCTION DBMS_CLOUD_REPO.INIT_AZURE_REPO(
      credential_name IN  VARCHAR2,
      repo_name       IN  VARCHAR2,
      organization    IN  VARCHAR2,
      project         IN  VARCHAR2
)  RETURN repo;

参数

Parameter (参数) 说明
credential_name

指定 Azure 的身份证明对象,带有用户名和个人访问令牌 (PAT)。

repo_name 指定资料档案库名称。
organization 指定 Azure DevOps 组织。
project Azure Team Project 名称。

范例

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_AZURE_REPO(
                 credential_name => 'AZURE_CRED',
                 repo_name       => 'my_repo',
                 organization    => 'myorg',
                 project         => 'myproj',
           );
END;
/

INIT_GITHUB_REPO 函数

此函数初始化 GitHub 系统信息库句柄并返回不透明类型。

语法

FUNCTION DBMS_CLOUD_REPO.INIT_GITHUB_REPO(
      credential_name IN  VARCHAR2  DEFAULT NULL,
      repo_name       IN  VARCHAR2,
      owner           IN  VARCHAR2) 
RETURN repo;

参数

Parameter (参数) 说明
credential_name

指定 GitHub 的身份证明对象。

用户电子邮件和个人访问令牌 (PAT)。

repo_name 指定资料档案库名称。
owner 指定系统信息库所有者。

范例

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_GITHUB_REPO(
                 credential_name => 'GITHUB_CRED',
                 repo_name       => 'my_repo',
                 owner           => 'foo'
           );
END;
/  

INIT_REPO 函数

此函数初始化云代码资料档案库句柄并返回不透明 JSON 对象。此函数是一个通用接口,用于接受 JSON 文档,并且无需更改代码,只需在将代码资料档案库从一个云代码资料档案库移到另一个云代码资料档案库时更改 JSON 文档即可。

语法

FUNCTION DBMS_CLOUD_REPO.INIT_REPO(
     params      IN   CLOB)
RETURN CLOB;

参数

JSON 参数 说明
provider

来自以下项的云代码资料档案库提供程序:

DBMS_CLOUD_REPO.GITHUB_REPO ('GITHUB')

DBMS_CLOUD_REPO.AWS_REPO ('AWS')

DBMS_CLOUD_REPO.AZURE_REPO ('AZURE')
repo_name 指定资料档案库名称。DBMS_CLOUD_REPO.PARAM_REPO_NAME
owner GitHub 资料档案库所有者。DBMS_CLOUD_REPO.PARAM_OWNER

此参数仅适用于 GitHub 云提供商。

region AWS 存储库区域 DBMS_CLOUD_REPO_PARAM_REGION

此参数仅适用于 AWS 云提供商。

organization Azure 组织 DBMS_CLOUD_REPO_PARAM_ORGANIZATION

此参数仅适用于 Azure 云提供商。

project Azure 团队项目 DBMS_CLOUD_REPO_PARAM_PROJECT

此参数仅适用于 Azure 云提供商

范例

BEGIN
  :repo := DBMS_CLOUD_REPO.INIT_REPO(
          params => JSON_OBJECT('credential_name' value 'mycred',
                        'repo_name'       value 'myrepo',
                        'repo_owner'      value 'foo')
       );
END;
/

INSTALL_FILE 过程

此过程将 SQL 语句从由 repo 句柄参数标识的云代码资料档案库中的文件安装。

语法

PROCEDURE DBMS_CLOUD_REPO.INSTALL_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      tag_name          IN  VARCHAR2  DEFAULT NULL,
      commit_name       IN  VARCHAR2  DEFAULT NULL,
      stop_on_error     IN  BOOLEAN   DEFAULT TRUE
);

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。
file_path 资料档案库中的文件路径。
branch_name 用于从特定分支安装文件的分支。
tag_name 用于从特定标记安装文件的标记。
commit_name 用于从特定提交安装文件的提交 ID。
stop_on_error 在出现第一个错误时停止执行 SQL 语句。

使用说明

  • 可以使用以下命令从云代码资料档案库文件安装包含嵌套 SQL 的 SQL 语句:

    • @:包括具有资料档案库 ROOT 的相对路径的 SQL 文件。

    • @@:包括具有相对于当前文件的路径的 SQL 文件。

  • 这些脚本用作模式安装脚本,而不是通用 SQL 脚本:

    • 脚本不能包含特定于 SQL*Plus 客户端的命令。
    • 脚本不能包含绑定变量或参数化脚本。
    • SQL 语句必须以新行 (/) 上的斜杠终止。
    • 脚本可以包含 DDL 和 DML PLSQL 语句,但不支持直接 SELECT 语句。支持在 PL/SQL 块中使用 SELECT。

    如果任何 SQL 语句不包含绑定变量或定义,则可以使用 EXECUTE IMMEDIATE 运行该语句。

范例

BEGIN
     DBMS_CLOUD_REPO.INSTALL_FILE(
         repo          => l_repo,
         file_path     => 'test3.sql',
         stop_on_error => FALSE
     );
END;
/

INSTALL_SQL 过程

此过程从给定为输入的缓冲区安装 SQL 语句。

语法

PROCEDURE DBMS_CLOUD_REPO.INSTALL_SQL(
      content           IN  CLOB,
      stop_on_error     IN  BOOLEAN  DEFAULT TRUE
);

参数

Parameter (参数) 说明
content CLOB 包含要运行的 SQL 语句。
stop_on_error 在出现第一个错误时停止执行 SQL 语句。

使用说明

  • 这些脚本用作模式安装脚本,而不是通用 SQL 脚本:

    • 脚本不能包含特定于 SQL*Plus 客户端的命令。
    • 脚本不能包含绑定变量或参数化脚本。
    • SQL 语句必须以新行 (/) 上的斜杠终止。
    • 脚本可以包含 DDL 和 DML PLSQL 语句,但不支持直接 SELECT 语句。支持在 PL/SQL 块中使用 SELECT。

    如果任何 SQL 语句不包含绑定变量或定义,则可以使用 EXECUTE IMMEDIATE 运行该语句。

范例

BEGIN
  DBMS_CLOUD_REPO.INSTALL_SQL(
      content   => 'create table t1 (x varchar2(30))' || CHR(10) || '/',
      stop_on_error => FALSE
  );
END;
/

LIST_BRANCHES 函数

此函数列出由 repo 句柄参数标识的云代码资料档案库分支中的分支。

语法

FUNCTION DBMS_CLOUD_REPO.LIST_BRANCHES(
    repo           IN   CLOB
) RETURN list_branch_ret_tab PIPELINED PARALLEL_ENABLE;

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。

此参数是所有云提供商必备的且受支持。

范例

SELECT * FROM DBMS_CLOUD_REPO.LIST_BRANCHES (repo => l_repo);

使用说明

  • 这是返回类型为 list_branch_ret_tab. 的流水线表函数

  • DBMS_CLOUD_REPO.LIST_BRANCHES 返回列 name,表示云代码资料档案库分支的名称。

LIST_COMMITS 函数

此函数列出由 repo 句柄参数标识的云代码资料档案库分支中的提交。

语法

FUNCTION DBMS_CLOUD_REPO.LIST_COMMITS(
      repo              IN  CLOB,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      file_path         IN  VARCHAR2 DEFAULT NULL,
      commit_id         IN  VARCHAR2  DEFAULT NULL
) RETURN list_commit_ret_tab PIPELINED PARALLEL_ENABLE;

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。

此参数是所有云提供商必备的且受支持。

branch_name 列出来自特定分支的提交。

所有云提供商都支持此参数。

如果未提供 branch_name 值,则将 branch_name 设置为 main

file_path 列出资料档案库中指定子文件夹路径下的文件。

仅 Git 和 Azure 云提供商支持此参数。

如果未提供 file_path 值,则将 file_path 设置为 NULL 值。

commit_id 列出从指定 sha/id 开始的文件

所有云提供商都支持此参数。

如果未提供 commit_id 值,则将 commit_id 设置为 NULL 值。

范例

SELECT name FROM DBMS_CLOUD_REPO.LIST_COMMITS(repo => l_repo);

范例

SELECT name FROM DBMS_CLOUD_REPO.LIST_COMMITS (
    repo        => l_repo,
    commit_id   => '66dd2b23b74cd0afabd11af66c6aa9c550540ba6',
    file_path   => 'sub_dir/test11.sql'
);

使用说明

  • 这是返回类型为 list_commit_ret_tab. 的流水线表函数

  • DBMS_CLOUD_REPO.LIST_COMMITS 返回列:commit_id

LIST_FILES 函数

此函数从云代码资料档案库下载文件。(可选)可以从特定分支、标记或提交名称访问文件内容。默认情况下,从默认系统信息库分支访问该文件。结果包括文件名以及有关文件的其他元数据。

语法

FUNCTION DBMS_CLOUD_REPO.LIST_FILES(
      repo              IN  CLOB,
      path              IN  VARCHAR2  DEFAULT NULL,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      tag_name          IN  VARCHAR2  DEFAULT NULL,
      commit_id         IN  VARCHAR2  DEFAULT NULL
) RETURN list_file_ret_tab PIPELINED PARALLEL_ENABLE;

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。
path 列出资料档案库中指定子文件夹路径下的文件。
branch_name 列出特定分支中的文件。
tag_name 列出特定标记中的文件。
commit_name 列出特定提交中的文件。

使用说明

  • 这是返回类型为 list_file_ret_tab. 的流水线表函数

  • DBMS_CLOUD_REPO.LIST_FILES 返回以下列:idnameurlbytes

范例

SELECT name FROM DBMS_CLOUD_REPO.LIST_FILES(repo => l_repo);

NAME
-------------------------
test3.sql

LIST_REPOSITORIES 函数

此函数列出由 repo 句柄参数标识的所有云代码资料档案库。结果包括系统信息库名称和有关系统信息库的其他元数据。

语法

FUNCTION DBMS_CLOUD_REPO.LIST_REPOSITORIES(
      repo                 IN   CLOB
) RETURN list_repo_ret_tab PIPELINED PARALLEL_ENABLE;

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。

所有云提供商都支持此参数。

description 资料档案库的简短文本说明。

GITHUB 和 AWS 云提供商支持此参数。

private

资料档案库是专用的,只能使用有效身份证明进行访问

GITHUB 云提供商支持此参数。

使用说明

  • 这是返回类型为 list_repo_ret_tab. 的流水线表函数

  • DBMS_CLOUD_REPO.LIST_REPOSITORIES 返回以下列:idnameownerdescriptionprivateurlbytescreatedlast_modified

范例

SELECT name description FROM DBMS_CLOUD_REPO.LIST_REPOSITORIES(:repo);

NAME                  DESCRIPTION
--------------------- ---------------
TestRepo1             My test repo

MERGE_BRANCH 过程

此过程将资料档案库分支合并到由 repo 句柄参数标识的云代码资料档案库中的另一个指定分支中。Azure 当前不支持 MERGE_BRANCH 过程。

语法

PROCEDURE DBMS_CLOUD_REPO.MERGE_BRANCH (
    repo               IN   CLOB,
    branch_name        IN   VARCHAR2,
    parent_branch_name IN   VARCHAR2 DEFAULT NULL,
    commit_details     IN   CLOB      DEFAULT NULL
 );

参数

Parameter (参数) 说明
repo

指定系统信息库句柄。

此参数对于 GITHUB 和 AWS 云提供商是必需的,并且受其支持。

branch_name

指定要合并的 Git 分支名称。

此参数是所有云提供商必备的且受支持。

target_branch_name

指定要合并到的目标分支名称。

此参数是所有云提供商必备的且受支持。

commit_details

以 JSON 文档形式提交详细信息

{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

如果未提供 commit_details 值,则 commit_details 将设置为默认提交消息,其中包括有关当前数据库会话用户和执行提交的数据库名称的信息。

范例

BEGIN
  DBMS_CLOUD_REPO.MERGE_BRANCH (
    repo               => l_repo,
    branch_name        => 'test_branch',
    target_branch_name => 'main'
    );
END;
/

使用说明

要运行 DBMS_CLOUD_REPO.MERGE_BRANCH 过程,必须以 ADMIN 用户身份登录,或者对 DBMS_CLOUD_REPO 具有 EXECUTE 特权。

PUT_FILE 过程

此过程将文件上载到由 repo 句柄参数标识的云代码资料档案库。该过程超载以支持从目录对象上载文件或将内容从 BLOB 上载到资料档案库文件。

语法

PROCEDURE DBMS_CLOUD_REPO.PUT_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      contents          IN  BLOB,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      commit_details    IN  CLOB      DEFAULT NULL
);
 
PROCEDURE DBMS_CLOUD_REPO.PUT_FILE(
      repo              IN  CLOB,
      file_path         IN  VARCHAR2,
      directory_name    IN  VARCHAR2,
      source_file_name  IN  VARCHAR2  DEFAULT NULL,
      branch_name       IN  VARCHAR2  DEFAULT NULL,
      commit_details    IN  CLOB      DEFAULT NULL
);

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。
file_path 用于在资料档案库中上载文件的文件路径。
contents 包含文件内容的 BLOB。
directory_name 包含文件名的目录对象名称。
source_file_name 要上载到资料档案库的源文件名。
branch_name 将文件放置到特定分支。
commit_details

以 JSON 文档形式提交详细信息:

{"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }

范例

BEGIN
  DBMS_CLOUD_REPO.PUT_FILE(
     repo   => l_repo,
  );
END;
/

UPDATE_REPOSITORY 过程

此过程将更新由 repo 句柄参数标识的云代码资料档案库。UPDATE_REPOSITORY 支持更新名称、说明或专用可见性状态,如云代码资料档案库所支持。

语法

PROCEDURE DBMS_CLOUD_REPO.UPDATE_REPOSITORY(
      repo                 IN OUT  CLOB,
      new_name             IN      VARCHAR2 DEFAULT NULL,
      description          IN      CLOB     DEFAULT NULL,
      private              IN      BOOLEAN  DEFAULT NULL
);

参数

Parameter (参数) 说明
repo 指定系统信息库句柄。

所有云提供商都支持此参数。

new_name 资料档案库的新名称。

所有云提供商都支持此参数。

description 资料档案库的简短文本说明。

GITHUB 和 AWS 云提供商支持此参数。

private

资料档案库是专用的,只能使用有效身份证明进行访问。

GITHUB 云提供商支持此参数。

范例

BEGIN
  DBMS_CLOUD_REPO.UPDATE_REPOSITORY(
     repo        => l_repo,
     new_name    => 'repo2'
  );
END;
/