DBMS_CLOUD_REPOパッケージ
DBMS_CLOUD_REPO
パッケージは、Oracle Databaseからクラウド・ホスト・コード・リポジトリを使用および管理する機能を提供します。サポートされるクラウド・コード・リポジトリには、GitHub、AWS CodeCommitおよびAzure Reposがあります。
- DBMS_CLOUD_REPOの概要
DBMS_CLOUD_REPO
パッケージを使用すると、GitHub、AWS CodeCommit、Azureリポジトリなど、クラウド・コード(Git)リポジトリ内のファイルに簡単にアクセスできます。 - DBMS_CLOUD_REPOデータ構造
DBMS_CLOUD_REPO
パッケージは、レコード・タイプおよび汎用JSONオブジェクト型のrepo
を定義します。 - DBMS_CLOUD_REPOサブプログラム・グループ
DBMS_CLOUD_REPO
パッケージ・サブプログラムは、初期化操作、リポジトリ管理操作、ファイル操作およびSQLインストール操作の4つのカテゴリにグループ化できます。 - DBMS_CLOUD_REPOサブプログラムの要約
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_REPO
サブプログラムについて説明します。
DBMS_CLOUD_REPO概要
DBMS_CLOUD_REPO
パッケージを使用すると、GitHub、AWS CodeCommit、Azure Reposなどのクラウド・コード(Git)リポジトリ内のファイルに簡単にアクセスできます。
このパッケージは、マルチクラウド・コード・リポジトリにアクセスするための単一のインタフェースであり、SQLファイルをGitリポジトリにアップロードしたり、クラウド・コード・リポジトリから直接SQLスクリプトをインストールできます。このパッケージでは、クラウド・コード・リポジトリを使用して、SQLスクリプトのコード・バージョンを管理し、Gitリポジトリからアプリケーション・コードをインストールまたはパッチ適用することもできます。
コンセプト
-
Gitバージョン管理システム: Gitは、一連のファイルの変更をトラッキングするためのソフトウェアで、通常はソフトウェア開発中にソース・コードを共同開発するプログラマ間の作業を調整するために使用されます。その目標には、迅速性、データ整合性、および分散型の非線形ワークフローのサポートが含まれます。
-
Gitリポジトリ: Gitリポジトリは、プロジェクトの仮想ストレージです。これにより、コードのバージョンを保存して、必要なときにアクセスできます。
アーキテクチャ
DBMS_CLOUD_REPO
パッケージには、4つの機能領域があります:
-
汎用クラウド・コード・リポジトリ・ハンドルを使用したリポジトリの初期化
-
GitHubコード・リポジトリの初期化
-
AWS CodeCommitコード・リポジトリの初期化
-
Azure Reposコード・リポジトリの初期化
-
-
リポジトリ管理操作
-
リポジトリを作成します
-
リポジトリを更新します
-
リポジトリのリスト
-
リポジトリを削除します
-
-
リポジトリ・ファイル管理操作
-
Oracle Databaseからコード・リポジトリにファイルをアップロードします。
-
ファイルをコード・リポジトリからOracle Databaseにダウンロードします。
-
コード・リポジトリからファイルを削除します。
-
コード・リポジトリのファイルをリストします。
-
-
SQLインストール操作
- データベース・オブジェクト・メタデータDDLをリポジトリにエクスポートします。
-
Oracle Databaseのコード・リポジトリのファイルからのSQL文のインストール
-
バッファーからSQLステートメントをインストールします。
親トピック: DBMS_CLOUD_REPOパッケージ化
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サブプログラム・グループ
DBMS_CLOUD_REPO
パッケージ・サブプログラムは、初期化操作、リポジトリ管理操作、ファイル操作およびSQLインストール操作の4つのカテゴリにグループ化できます。
- DBMS_CLOUD_REPO初期化操作
DBMS_CLOUD_REPO
パッケージ内の初期化操作のサブプログラムをリストします。 - DBMS_CLOUD_REPOリポジトリ管理操作
DBMS_CLOUD_REPO
パッケージ内のリポジトリ管理操作のサブプログラムを示します。 - DBMS_CLOUD_REPOリポジトリ・ブランチ管理操作
DBMS_CLOUD_REPO
パッケージ内のリポジトリ・ブランチ管理操作のサブプログラムをリストします。 - DBMS_CLOUD_REPOファイル操作
DBMS_CLOUD_REPO
パッケージ内のファイル操作のサブプログラムをリストします。 - DBMS_CLOUD_REPO SQLインストール操作
DBMS_CLOUD_REPO
パッケージ内のSQLインストール操作のサブプログラムをリストします。
親トピック: DBMS_CLOUD_REPOパッケージ化
DBMS_CLOUD_REPO初期化操作
DBMS_CLOUD_REPO
パッケージ内の初期化操作のサブプログラムをリストします。
サブプログラム | 説明 |
---|---|
このファンクションは、AWSリポジトリ・ハンドルを初期化し、不透明型を返します。 | |
このファンクションは、Azureリポジトリ・ハンドルを初期化し、不透明型を返します。 | |
このファンクションは、GitHubリポジトリ・ハンドルを初期化し、不透明型を返します。 | |
このファンクションは、クラウド・コード・リポジトリ・ハンドルを初期化し、不透明なJSONオブジェクトを返します。 |
親トピック: DBMS_CLOUD_REPOサブプログラム・グループ
DBMS_CLOUD_REPOリポジトリ管理操作
DBMS_CLOUD_REPO
パッケージ内のリポジトリ管理操作のサブプログラムを示します。
サブプログラム | 説明 |
---|---|
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリを作成します。
|
|
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリを削除します。
|
|
このファンクションは、repo ハンドル引数で識別されるすべてのクラウド・コード・リポジトリをリストします。
|
|
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリを更新します。このプロシージャは、クラウド・コード・リポジトリでサポートされている名前、説明またはプライベート可視性ステータスの更新をサポートしています。
|
親トピック: DBMS_CLOUD_REPOサブプログラム・グループ
DBMS_CLOUD_REPOリポジトリ・ブランチ管理操作
DBMS_CLOUD_REPO
パッケージ内のリポジトリ・ブランチ管理操作のサブプログラムをリストします。
サブプログラム | 説明 |
---|---|
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリにブランチを作成します。
|
|
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリ内のブランチを削除します。
|
|
このファンクションは、repo ハンドル引数で識別されるすべてのクラウド・コード・リポジトリ・ブランチをリストします。
|
|
このファンクションは、repo ハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチ内のすべてのコミットをリストします。
|
|
このプロシージャは、クラウド・コード・リポジトリ・ブランチを、repo ハンドル引数で識別されるクラウド・コード・リポジトリ内の別の指定されたブランチにマージします。
|
親トピック: DBMS_CLOUD_REPOサブプログラム・グループ
DBMS_CLOUD_REPOファイル操作
DBMS_CLOUD_REPO
パッケージ内のファイル操作のサブプログラムをリストします。
サブプログラム | 説明 |
---|---|
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリからファイルを削除します。
|
|
このファンクションは、クラウド・コード・リポジトリからファイルのコンテンツをダウンロードします。このプロシージャでは、クラウド・コード・リポジトリからファイルのコンテンツをダウンロードし、そのファイルをディレクトリに保存できます。 | |
このファンクションは、クラウド・コード・リポジトリからファイルをダウンロードします。オプションで、特定のブランチ、タグまたはコミット名からファイル・コンテンツにアクセスできます。デフォルトでは、ファイルはデフォルトのリポジトリ・ブランチからアクセスされます。 | |
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリにファイルをアップロードします。このプロシージャは、ディレクトリ・オブジェクトからのファイルのアップロード、またはCLOBからリポジトリ・ファイルへのコンテンツのアップロードをサポートするためにオーバーロードされています。
|
親トピック: DBMS_CLOUD_REPOサブプログラム・グループ
DBMS_CLOUD_REPO SQLインストール操作
DBMS_CLOUD_REPO
パッケージ内のSQLインストール操作のサブプログラムをリストします。
サブプログラム | 説明 |
---|---|
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリにデータベース・オブジェクトのDDLメタデータをアップロードします。
|
|
このプロシージャは、スキーマ内のすべてのオブジェクトのメタデータを、repo ハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチにエクスポートします。
|
|
このプロシージャは、repo ハンドル引数で識別されるクラウド・コード・リポジトリのファイルからSQL文をインストールします。
|
|
このプロシージャは、入力として指定されたバッファからSQL文をインストールします。 |
親トピック: DBMS_CLOUD_REPOサブプログラム・グループ
DBMS_CLOUD_REPOサブプログラムのサマリー
この項では、Autonomous Databaseで提供されるDBMS_CLOUD_REPO
サブプログラムについて説明します。
DBMS_CLOUD_REPO
パッケージは、次で構成されます:
- CREATE_BRANCHプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリにブランチを作成します。 - CREATE_REPOSITORYプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリを作成します。 - DELETE_BRANCHプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリ内のブランチを削除します。 - DELETE_FILEプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリからファイルを削除します。 - DELETE_REPOSITORYプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリを削除します。 - EXPORT_OBJECTプロシージャ
このプロシージャは、データベース・オブジェクトのDDLメタデータを、repo
ハンドル引数で識別されるクラウド・コード・リポジトリにアップロードします。このプロシージャは、1つのステップでデータベース・オブジェクトのメタデータ定義をアップロードできます。 - EXPORT_SCHEMAプロシージャ
このプロシージャは、スキーマ内のすべてのオブジェクトのメタデータを、repo
ハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチにエクスポートします。 - GET_FILEプロシージャおよびファンクション
このファンクションは、クラウド・コード・リポジトリからファイルのコンテンツをダウンロードします。このプロシージャでは、クラウド・コード・リポジトリからファイルのコンテンツをダウンロードし、そのファイルをディレクトリに保存できます。 - INIT_AWS_REPOファンクション
このファンクションは、AWSリポジトリ・ハンドルを初期化し、不透明型を返します。 - INIT_AZURE_REPOファンクション
このファンクションは、Azureリポジトリ・ハンドルを初期化し、不透明型を返します。このファンクションは、Azureクラウド・プロバイダでのみサポートされています。 - INIT_GITHUB_REPOファンクション
このファンクションは、GitHubリポジトリ・ハンドルを初期化し、不透明型を返します。 - INIT_REPOファンクション
このファンクションは、クラウド・コード・リポジトリ・ハンドルを初期化し、不透明なJSONオブジェクトを返します。このファンクションは、JSONドキュメントを受け入れるための汎用インタフェースであり、コードを変更する必要はありません。JSONドキュメントは、あるクラウド・コード・リポジトリから別のクラウド・コード・リポジトリにコード・リポジトリを移動する場合にのみ変更する必要があります。 - INSTALL_FILEプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリのファイルからSQL文をインストールします。 - INSTALL_SQLプロシージャ
このプロシージャは、入力として指定されたバッファからSQL文をインストールします。 - LIST_BRANCHESファンクション
このファンクションは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチのブランチをリストします。 - LIST_COMMITSファンクション
このファンクションは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチのコミットをリストします。 - LIST_FILESファンクション
このファンクションは、クラウド・コード・リポジトリからファイルをダウンロードします。オプションで、特定のブランチ、タグまたはコミット名からファイル・コンテンツにアクセスできます。デフォルトでは、ファイルはデフォルトのリポジトリ・ブランチからアクセスされます。結果には、ファイル名と、ファイルに関する追加のメタデータが含まれます。 - LIST_REPOSITORIESファンクション
このファンクションは、repo
ハンドル引数で識別されるすべてのクラウド・コード・リポジトリをリストします。repo
ハンドルにリポジトリ名が指定されている場合、この関数はリストを指定されたリポジトリ名に制限せず、ユーザーがアクセスできるすべてのリポジトリをリストします。 - MERGE_BRANCHプロシージャ
このプロシージャは、リポジトリ・ブランチを、repo
ハンドル引数で識別されるクラウド・コード・リポジトリ内の別の指定されたブランチにマージします。MERGE_BRANCH
プロシージャは、現在Azureではサポートされていません。 - PUT_FILEプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリにファイルをアップロードします。このプロシージャは、ディレクトリ・オブジェクトからのファイルのアップロード、またはBLOBからリポジトリ・ファイルへのコンテンツのアップロードをサポートするためにオーバーロードされています。 - UPDATE_REPOSITORYプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリを更新します。UPDATE_REPOSITORYは、クラウド・コード・リポジトリでサポートされている名前、説明またはプライベート可視性ステータスの更新をサポートしています。
親トピック: 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
権限を持っている必要があります。
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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
権限を持っている必要があります。
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
DELETE_REPOSITORYプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリを削除します。
構文
PROCEDURE DBMS_CLOUD_REPO.DELETE_REPOSITORY
(
repo IN CLOB
);
パラメータ
パラメータ | 説明 |
---|---|
repo |
リポジトリ・ハンドルを指定します。 |
例
BEGIN
DBMS_CLOUD_REPO.DELETE_REPOSITORY
(
repo => l_repo
);
END;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
EXPORT_OBJECTプロシージャ
このプロシージャは、repo
ハンドル引数で識別されるクラウド・コード・リポジトリにデータベース・オブジェクトのDDLメタデータをアップロードします。このプロシージャは、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ドキュメントとしてのコミット詳細: |
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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を指定します。 このパラメータは、すべてのクラウド・プロバイダでサポートされています。 filter_list のJSONパラメータは次のとおりです。
|
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
権限を持っている必要があります。
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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アクセスキー/シークレットキーを指定する資格証明オブジェクト。 |
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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を指定する資格証明オブジェクト。 ユーザーの電子メールおよび個人アクセス・トークン(PAT)。 |
repo_name |
リポジトリ名を指定します。 |
owner |
リポジトリ所有者を指定します。 |
例
BEGIN
:repo := DBMS_CLOUD_REPO.INIT_GITHUB_REPO
(
credential_name => 'GITHUB_CRED',
repo_name => 'my_repo',
owner => 'foo'
);
END;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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
を返します。
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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
を返します。
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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.sql
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
LIST_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 repo
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
MERGE_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": "Commit message", "author": {"name": "Committing user name", "email": "Email of committing user" } }
|
例
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
権限を持っている必要があります。
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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
);
パラメータ
パラメータ | 説明 |
---|---|
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー
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;
/
親トピック: DBMS_CLOUD_REPOサブプログラムのサマリー