DBMS_CLOUD_REPO 子程式摘要
本節涵蓋 Autonomous AI Database 提供的 DBMS_CLOUD_REPO 子程式。
DBMS_CLOUD_REPO 套裝軟體由下列項目組成:
必備條件
身為開發人員,您可以將 DBMS_CLOUD 程序與部署在 Oracle Public Cloud、Multicloud 或 Exadata Cloud@Customer 上的 Autonomous AI 資料庫搭配使用。
視部署選項而定,必須符合下列先決條件,才能將 DBMS_CLOUD 程序與 Amazon S3、Azure Blob Storage 及 Google Cloud Storage 服務提供者搭配使用。
您的機組管理員必須使用 NAT 閘道設定輸出連線,如下所述:
-
請依照 Oracle Cloud Infrastructure 文件中 Create a NAT Gateway 的指示,在您自治式 AI 資料庫資源所在的虛擬雲端網路 (VCN) 中建立 NAT 閘道。
-
建立 NAT 閘道之後,請在自治式 AI 資料庫資源所在的每個子網路 (VCN 中) 新增路由規則和輸出安全規則,讓這些資源能夠使用閘道從您的 Azure AD 執行處理取得公開金鑰:
-
移至子網路的子網路詳細資訊頁面。
-
在子網路資訊頁籤中,按一下子網路的路由表名稱,以顯示其路由表詳細資訊頁面。
-
在現有路由規則的表格中,檢查是否已有具有下列特性的規則:
-
目的地:0.0.0.0/0
-
目標類型:NAT 閘道
-
目標:剛剛在 VCN 中建立的 NAT 閘道名稱
如果沒有這樣的規則,請按一下新增路由規則,然後新增具有這些特性的路由規則。
-
-
返回子網路的子網路詳細資訊頁面。
-
在子網路的安全清單表格中,按一下子網路安全清單的名稱,以顯示其安全清單詳細資訊頁面。
-
在側邊功能表的資源底下,按一下傳出規則。
-
在現有傳出規則的表格中,檢查是否已有具有下列特性的規則:
-
目的地類型: CIDR
-
目的地:0.0.0.0/0
-
IP 協定: TCP
-
來源連接埠範圍:443
-
目的地連接埠範圍:全部
如果沒有這類規則,請按一下新增傳出規則,然後新增含有這些特性的傳出規則。
-
-
您環境中的 HTTP 代理主機設定值必須允許資料庫存取雲端服務提供者。
這些設定值是由機組管理員在建立 Exadata Cloud@Customer 基礎架構時所定義,如使用主控台在 Cloud@Customer 上佈建 Exadata 資料庫服務中所述。
注意:只有在 Exadata 基礎架構處於需要啟用狀態時,才能編輯包含 HTTP 代理主機的網路組態。啟用之後,就無法編輯這些設定值。
若為已經佈建的 Exadata 基礎架構設定 HTTP 代理主機,在 My Oracle Support 中需要服務要求 (SR)。請參閱 在 My Oracle Support 中建立服務要求瞭解詳細資訊。
CREATE_BRANCH 程序
此程序會在由 repo handle 引數識別的「雲端程式碼儲存區域」中建立分支。
語法
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_commit_id |
使用指定的儲存區域確認建立新的分支。 所有雲端提供者都支援此參數。 如果未提供 |
範例
注意:若要在 Cloud Code 儲存區域中建立分支,您必須指定父項分支或父項確認 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 處理引數識別之 Cloud Code 儲存區域中的分支。
語法
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 權限。
DeleteE_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 文件形式確認詳細資訊
|
範例
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 處理引數識別的 Cloud Code 儲存區域。此程序是在單一步驟中上傳資料庫物件的描述資料定義是一個簡單的方法。
語法
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 table 或 Oracle Database 26ai 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_DDL 與 DBMS_CLOUD_REPO.PUT_FILE。若要取得物件的描述資料定義,必須將目前使用者的權限授與擷取物件描述資料。請參閱 Oracle Database 19c PL/SQL Packages and Types Reference 中的 DBMS_METADATA,或參閱 Oracle Database 26ai 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,此陣列定義篩選條件以包含或排除需要匯出其描述資料的物件。 所有雲端提供者都支援此參數。
|
branch_name |
指定儲存庫分支名稱。 所有雲端提供者都支援此參數。 如果您未提供 |
commit_details |
以 JSON 文件形式確認詳細資訊 {"message": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }所有雲端提供者都支援此參數。 如果您未提供 |
範例
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 程序和函數
此函數會從 Cloud Code 儲存區域下載檔案的內容。此程序可讓您從 Cloud Code 儲存區域下載檔案的內容,並將檔案儲存在目錄中。
語法
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 |
指定 Azure、使用者名稱和個人存取權杖 (PAT) 的證明資料物件。 |
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 |
下列雲端程式碼儲存區域提供者:
|
repo_name |
指定儲存庫名稱。DBMS_CLOUD_REPO.PARAM_REPO_NAME |
owner |
GitHub 儲存區域擁有者。 此參數僅適用於 GitHub 雲端提供者。 |
region |
AWS 儲存區域區域。 此參數僅適用於 AWS 雲端提供者。 |
organization |
Azure 組織。 此參數僅適用於 Azure 雲端提供者。 |
project |
Azure 團隊專案。 此參數僅適用於 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 程序
此程序會從由 repo handle 引數識別之 Cloud Code 儲存區域中的檔案安裝 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 敘述句。 |
使用注意事項
-
您可以使用下列方式,從 Cloud Code 儲存區域檔案安裝包含巢狀 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 |
列出來自特定分支的確認項目。 所有雲端提供者都支援此參數。 如果未提供 |
file_path |
列出儲存區域中指定子資料夾路徑下的檔案。 只有 Git 和 Azure 雲端提供者才支援此參數。 如果未提供 |
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 函數
此函數會從 Cloud Code 儲存區域下載檔案。您可以選擇性地從特定分支、標記或確認名稱存取檔案內容。依照預設,會從預設儲存區域分支存取檔案。結果會包含檔案名稱以及與檔案相關的其他描述資料。
語法
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會傳回資料欄:id、name、url和bytes。
範例
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會傳回資料欄:id、name、owner、description、private、url、bytes、created和last_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 文件形式確認詳細資訊
如果您未提供 |
範例
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 文件形式確認詳細資訊:
|
範例
BEGIN
DBMS_CLOUD_REPO.PUT_FILE(
repo => l_repo,
);
END;
/
UPDATE_REPOSITORY 程序
此程序會更新由 repo 控點引數識別的 Cloud Code 儲存區域。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;
/