DBMS_CLOUD_REPO 子程式摘要

本節涵蓋 Autonomous Database 隨附的 DBMS_CLOUD_REPO 子程式。

相關主題

必備條件

身為開發人員,您可以將 DBMS_CLOUD 程序與部署在 Oracle Public Cloud多重雲端Exadata Cloud@Customer 上的 Autonomous Database 搭配使用。

視部署選擇而定,必須符合下列先決條件,才能將 DBMS_CLOUD 程序與 Amazon S3Azure Blob StorageGoogle Cloud Storage 服務提供者搭配使用。

機組管理員必須使用 NAT 閘道設定輸出連線,如下所述:
  • 請依照 Oracle Cloud Infrastructure 文件建立 NAT 閘道的指示,在 Autonomous Database 資源所在的虛擬雲端網路 (VCN) 中建立 NAT 閘道。
  • 建立 NAT 閘道之後,請在 Autonomous Database 資源所在的每個子網路新增路由規則和傳出安全規則 (在 VCN 中),以便這些資源能夠使用此閘道從您的 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 基礎架構時定義的,如使用主控台在 Cloud@Customer 上佈建 Exadata 資料庫服務中所述。

附註:

必須等到 Exadata 基礎架構為需要啟用狀態後,才能編輯網路組態 (包括 HTTP 代理主機)。啟用之後,您就無法編輯這些設定值。

在 My Oracle Support 中設定已啟動設定之 Exadata 基礎架構的 HTTP 代理主機時,必須要有服務要求 (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 會設為空值。

範例

附註:

若要在雲端程式碼儲存區域中建立分支,您必須指定父項分支或父項確認 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_REPOEXECUTE 權限。

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_REPOEXECUTE 權限。

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 Reference 中的 DBMS_METADATA:Object Types tableOracle Database 23ai PL/SQL Packages and Types Reference 以瞭解詳細資訊。

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 Reference 中的 DBMS_METADATAOracle Database 23ai PL/SQL Packages and Types Reference ,瞭解套裝軟體的安全需求。

範例

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_REPOEXECUTE 權限。

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 accesskey/secretkey 的證明資料物件。

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

指定使用「使用者名稱」和「個人存取權杖 (PAT)」之 Azure 的證明資料物件。

repo_name 指定儲存區域名稱。
organization 指定 Azure DevOps 組織。
project Azure 團隊專案名稱。

範例

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 程序

此程序會從 Cloud Code 儲存區域中的檔案 (由 repo 處理引數識別) 安裝 SQL 敘述句。

語法

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。

    如果不包含連結變數或定義,可以使用 EXECUTE IMMEDIATE 執行的任何 SQL 敘述句都將運作。

範例

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。

    如果不包含連結變數或定義,可以使用 EXECUTE IMMEDIATE 執行的任何 SQL 敘述句都將運作。

範例

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 會設為空值。

commit_id 列出從指定 sha/id 開始的檔案

所有雲端提供者都支援此參數。

如果您未提供 commit_id 值,則 commit_id 會設為空值。

範例

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_REPOEXECUTE 權限。

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;
/