DBMS_CLOUD_REPOパッケージ
DBMS_CLOUD_REPOパッケージは、Oracle AI Databaseのクラウド・ホスト・コード・リポジトリの使用および管理を提供します。サポートされているクラウド コード リポジトリには、GitHub、AWS CodeCommit、および Azure Reposがあります。
DBMS_CLOUD_REPOの概要
DBMS_CLOUD_REPOパッケージを使用すると、GitHub、AWS CodeCommit、Azure Reposなどのクラウド・コード(Git)リポジトリ内のファイルに簡単にアクセスできます。
このパッケージは、マルチクラウド・コード・リポジトリにアクセスするための単一のインタフェースであり、SQLファイルをGitリポジトリにアップロードしたり、クラウド・コード・リポジトリから直接SQLスクリプトをインストールしたりできます。このパッケージでは、クラウド・コード・リポジトリを使用して、SQLスクリプトのコード・バージョンを管理したり、Gitリポジトリからアプリケーション・コードをインストールまたはパッチ適用することもできます。
概念
-
Git Version Control System: Gitは、ファイル・セットの変更を追跡するためのソフトウェアで、通常は、ソフトウェア開発中にソース・コードを共同開発するプログラマ間の作業を調整するために使用されます。その目標には、速度、データの整合性、分散した非線形ワークフローのサポートが含まれます。
-
Gitリポジトリ: Gitリポジトリは、プロジェクトの仮想ストレージです。これにより、コードのバージョンを保存でき、必要に応じてアクセスできます。
アーキテクチャ
DBMS_CLOUD_REPOパッケージには、次の4つの機能領域があります。
-
汎用クラウド・コード・リポジトリ・ハンドルを使用したリポジトリ初期化
-
GitHubコード・リポジトリの初期化
-
AWS CodeCommitコード・リポジトリの初期化
-
Azureリポジトリ・コード・リポジトリの初期化
-
-
リポジトリ管理操作
-
リポジトリを作成します
-
リポジトリを更新します
-
レポジトリの一覧表示
-
リポジトリを削除します
-
-
リポジトリ・ファイル管理操作
-
Oracle AI Databaseからコードをコード・リポジトリにアップロードします。
-
コード・リポジトリからOracle AI Databaseにファイルをダウンロードします。
-
コード・リポジトリからファイルを削除します。
-
コード・リポジトリからファイルをリストします。
-
-
SQLインストール操作
-
データベース・オブジェクト・メタデータDDLをリポジトリにエクスポートします。
-
Oracle AI Databaseのコード・リポジトリのファイルからSQL文をインストールします。
-
バッファからSQL文をインストールします。
-
DBMS_CLOUD_REPOデータ構造
DBMS_CLOUD_REPOパッケージは、レコード・タイプおよび汎用JSONオブジェクト・タイプrepoを定義します。
REPO JSONオブジェクト: DBMS_CLOUD_REPO REPOは、特定のクラウド・プロバイダのクラウド・コード・リポジトリを表す不透明なJSONオブジェクトです。REPOオブジェクトは、異なるDBMS_CLOUD_REPO APIに渡すことができます。この不透明なオブジェクトは、DBMS_CLOUD_REPOプロシージャおよびファンクションがマルチクラウド互換であることを保証します。クラウド・コード・リポジトリ・プロバイダ間で移行する際に、コードを変更する必要はありません。
DBMS_CLOUD_REPOサブプログラム・グループ
DBMS_CLOUD_REPOパッケージのサブプログラムは、初期化操作、リポジトリ管理操作、ファイル操作およびSQLインストール操作の4つのカテゴリにグループ化できます。
DBMS_CLOUD_REPO初期化操作
DBMS_CLOUD_REPOパッケージ内の初期化操作のサブプログラムをリストします。
| サブプログラム | 摘要 |
|---|---|
| INIT_AWS_REPOファンクション | この関数は、AWSリポジトリ・ハンドルを初期化し、不透明なタイプを返します。 |
| INIT_AZURE_REPOファンクション | この関数は、Azureリポジトリ・ハンドルを初期化し、不透明なタイプを返します。 |
| INIT_GITHUB_REPOファンクション | このファンクションは、GitHubリポジトリ・ハンドルを初期化し、不透明な型を戻します。 |
| INIT_REPOファンクション | このファンクションは、クラウド・コード・リポジトリ・ハンドルを初期化し、不透明なJSONオブジェクトを返します。 |
DBMS_CLOUD_REPOリポジトリ管理操作
DBMS_CLOUD_REPOパッケージ内のリポジトリ管理操作のサブプログラムを示します。
| サブプログラム | 摘要 |
|---|---|
| CREATE_REPOSITORYプロシージャ | このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリを作成します。 |
| DELETE_REPOSITORYプロシージャ | このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリを削除します。 |
| LIST_REPOSITORIESファンクション | このファンクションは、repoハンドル引数で識別されるすべてのクラウド・コード・リポジトリをリストします。 |
| UPDATE_REPOSITORYプロシージャ | このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリを更新します。このプロシージャでは、Cloud Codeリポジトリでサポートされている名前、説明またはプライベート表示ステータスの更新がサポートされています。 |
DBMS_CLOUD_REPOリポジトリ・ブランチ管理操作
DBMS_CLOUD_REPOパッケージ内のリポジトリ・ブランチ管理操作のサブプログラムをリストします。
| サブプログラム | 摘要 |
|---|---|
| CREATE_BRANCHプロシージャ | このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリにブランチを作成します。 |
| DELETE_BRANCHプロシージャ | このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリ内のブランチを削除します。 |
| LIST_BRANCHESファンクション | このファンクションは、repoハンドル引数で識別されるすべてのクラウド・コード・リポジトリ・ブランチをリストします。 |
| LIST_COMMITSファンクション | このファンクションは、repoハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチ内のすべてのコミットをリストします。 |
| MERGE_BRANCHプロシージャ | このプロシージャは、クラウド・コード・リポジトリ・ブランチを、repo handle引数で識別されるクラウド・コード・リポジトリ内の指定された別のブランチにマージします。 |
DBMS_CLOUD_REPOファイル操作
DBMS_CLOUD_REPOパッケージ内のファイル操作のサブプログラムをリストします。
| サブプログラム | 摘要 |
|---|---|
| DELETE_FILEプロシージャ | このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリからファイルを削除します。 |
| GET_FILEプロシージャおよびファンクション | このファンクションは、クラウド・コード・リポジトリからファイルの内容をダウンロードします。この手順では、クラウド・コード・リポジトリからファイルの内容をダウンロードし、ファイルをディレクトリに保存できます。 |
| LIST_FILESファンクション | この関数は、クラウド・コード・リポジトリからファイルをダウンロードします。オプションで、ファイル・コンテンツには、特定のブランチ、タグまたはコミット名からアクセスできます。デフォルトでは、ファイルはデフォルトのリポジトリ・ブランチからアクセスされます。 |
| PUT_FILEプロシージャ | このプロシージャは、repo handle引数で識別されるクラウド・コード・リポジトリにファイルをアップロードします。ディレクトリ・オブジェクトからファイルをアップロードするか、CLOBからリポジトリ・ファイルにコンテンツをアップロードするかをサポートするために、プロシージャがオーバーロードされます。 |
DBMS_CLOUD_REPO SQLインストール操作
DBMS_CLOUD_REPOパッケージ内のSQLインストール操作のサブプログラムをリストします。
| サブプログラム | 摘要 |
|---|---|
| EXPORT_OBJECTプロシージャ | このプロシージャは、データベース・オブジェクトのDDLメタデータを、repoハンドル引数で識別されるクラウド・コード・リポジトリにアップロードします。 |
| EXPORT_SCHEMAプロシージャ | このプロシージャは、スキーマ内のすべてのオブジェクトのメタデータを、repoハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチにエクスポートします。 |
| INSTALL_FILEプロシージャ | このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリ内のファイルからSQL文をインストールします。 |
| INSTALL_SQLプロシージャ | このプロシージャは、入力として指定されたバッファからSQL文をインストールします。 |
DBMS_CLOUD_REPOサブプログラムのサマリー
この項では、Autonomous AI Databaseで提供されるDBMS_CLOUD_REPOサブプログラムについて説明します。
DBMS_CLOUD_REPOパッケージは、次のもので構成されます。
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
);パラメータ
| パラメータ | 摘要 |
|---|---|
repo |
リポジトリ・ハンドルを指定します。 このパラメータは必須であり、すべてのクラウド・プロバイダでサポートされています。 |
branch_name |
リポジトリ・ブランチ名を指定します。 このパラメータは必須であり、すべてのクラウド・プロバイダでサポートされています。 |
parent_branch_name |
指定された親ブランチのヘッド・コミットを使用して新しいブランチを作成します。 このパラメータは、すべてのクラウド・プロバイダでサポートされます。
|
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_REPOに対するEXECUTE権限を持っている必要があります。
CREATE_REPOSITORYプロシージャ
このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリを作成します。
構文
PROCEDURE DBMS_CLOUD_REPO.CREATE_REPOSITORY(
repo IN CLOB,
description IN CLOB DEFAULT NULL,
private IN BOOLEAN DEFAULT TRUE
);パラメータ
| パラメータ | 摘要 |
|---|---|
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
);パラメータ
| パラメータ | 摘要 |
|---|---|
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
);パラメータ
| パラメータ | 摘要 |
|---|---|
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
);パラメータ
| パラメータ | 摘要 |
|---|---|
repo |
リポジトリ・ハンドルを指定します。 |
例
BEGIN
DBMS_CLOUD_REPO.DELETE_REPOSITORY(
repo => l_repo
);
END;
/EXPORT_OBJECTプロシージャ
このプロシージャは、データベース・オブジェクトのDDLメタデータを、repoハンドル引数で識別されるクラウド・コード・リポジトリにアップロードします。この手順は、データベース・オブジェクトのメタデータ定義を1ステップで簡単にアップロードする方法です。
構文
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
);パラメータ
| パラメータ | 摘要 |
|---|---|
repo |
リポジトリ・ハンドルを指定します。 |
file_path |
リポジトリにオブジェクト・メタデータをアップロードするためのファイル・パス。 |
object_type |
DBMS_METADATAでサポートされているオブジェクト・タイプ。詳細は、「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_DDLとDBMS_CLOUD_REPO.PUT_FILEを使用できます。オブジェクトのメタデータ定義を取得するには、現在のユーザーにオブジェクト・メタデータを取得する権限が必要です。パッケージのセキュリティ要件については、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
);パラメータ
| パラメータ | 摘要 |
|---|---|
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プロシージャおよびファンクション
このファンクションは、クラウド・コード・リポジトリからファイルの内容をダウンロードします。この手順では、クラウド・コード・リポジトリからファイルの内容をダウンロードし、ファイルをディレクトリに保存できます。
構文
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
);パラメータ
| パラメータ | 摘要 |
|---|---|
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;パラメータ
| パラメータ | 摘要 |
|---|---|
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;パラメータ
| パラメータ | 摘要 |
|---|---|
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;パラメータ
| パラメータ | 摘要 |
|---|---|
credential_name |
GitHubを指定する資格証明オブジェクト。 ユーザーEメールおよび個人アクセス・トークン(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プロシージャ
このプロシージャは、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
);パラメータ
| パラメータ | 摘要 |
|---|---|
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
);パラメータ
| パラメータ | 説明 |
|---|---|
content |
実行するSQL文を含むCLOBです。 |
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;パラメータ
| パラメータ | 摘要 |
|---|---|
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;パラメータ
| パラメータ | 摘要 |
|---|---|
repo |
リポジトリ・ハンドルを指定します。 このパラメータは必須であり、すべてのクラウド・プロバイダでサポートされています。 |
branch_name |
特定のブランチからのコミットをリストします。 このパラメータは、すべてのクラウド・プロバイダでサポートされます。
|
file_path |
リポジトリ内の指定されたサブフォルダ・パスの下にあるファイルをリストします。 このパラメータは、GitおよびAzureクラウド・プロバイダでのみサポートされます。
|
commit_id |
指定されたsha/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;パラメータ
| パラメータ | 摘要 |
|---|---|
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.sqlLIST_REPOSITORIESファンクション
このファンクションは、repoハンドル引数で識別されるすべてのクラウド・コード・リポジトリをリストします。repoハンドルにリポジトリ名が指定されている場合、このファンクションはリストを指定されたリポジトリ名に制限せず、ユーザーがアクセスできるすべてのリポジトリをリストします。
構文
FUNCTION DBMS_CLOUD_REPO.LIST_REPOSITORIES(
repo IN CLOB
) RETURN list_repo_ret_tab PIPELINED PARALLEL_ENABLE;パラメータ
| パラメータ | 摘要 |
|---|---|
repo |
リポジトリ・ハンドルを指定します。このパラメータは、すべてのクラウド・プロバイダによってサポートされます。 |
使用上のノート
-
これは、戻り値のタイプが
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 repoMERGE_BRANCHプロシージャ
このプロシージャは、リポジトリ・ブランチを、repoハンドル引数で識別されるクラウド・コード・リポジトリ内の指定された別のブランチにマージします。MERGE_BRANCHプロシージャは、現在Azureではサポートされていません。
構文
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
);パラメータ
| パラメータ | 摘要 |
|---|---|
repo |
リポジトリ・ハンドルを指定します。 このパラメータは必須であり、GITHUBおよびAWSクラウド・プロバイダでサポートされています。 |
branch_name |
マージするGitブランチ名を指定します。 このパラメータは必須であり、すべてのクラウド・プロバイダでサポートされています。 |
target_branch_name |
マージ先のターゲット・ブランチ名を指定します。 このパラメータは必須であり、すべてのクラウド・プロバイダでサポートされています。 |
commit_details |
JSONドキュメントとしての詳細をコミット`{"message": "コミットメッセージ"、 "作者": {"name": "ユーザ名をコミット"、 "email": "ユーザをコミットするメール" } }` `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 handle引数で識別されるクラウド・コード・リポジトリにファイルをアップロードします。ディレクトリ・オブジェクトからファイルをアップロードするか、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
);パラメータ
| パラメータ | 摘要 |
|---|---|
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
);パラメータ
| パラメータ | 摘要 |
|---|---|
repo |
リポジトリ・ハンドルを指定します。 このパラメータは、すべてのクラウド・プロバイダでサポートされます。 |
new_name |
リポジトリの新しい名前。 このパラメータは、すべてのクラウド・プロバイダでサポートされます。 |
description |
リポジトリの短いテキストの説明。 このパラメータは、GITHUBおよびAWSクラウドプロバイダでサポートされています。 |
private |
リポジトリはプライベートであり、有効な資格証明でのみアクセス可能です。 このパラメータは、GITHUBクラウドプロバイダでサポートされています。 |
例
BEGIN
DBMS_CLOUD_REPO.UPDATE_REPOSITORY(
repo => l_repo,
new_name => 'repo2'
);
END;
/