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パッケージは、レコード・タイプおよび汎用JSONオブジェクト型のrepoを定義します。

REPO JSONオブジェクト

DBMS_CLOUD_REPOREPOは、特定のクラウド・プロバイダのクラウド・コード・リポジトリを表す不透明なJSONオブジェクトです。REPOオブジェクトは、異なるDBMS_CLOUD_REPO APIに渡すことができます。この不透明なオブジェクトにより、DBMS_CLOUD_REPOプロシージャおよびファンクションがマルチクラウド互換であることが保証されます。あるクラウド・コード・リポジトリ・プロバイダから別のクラウド・コード・リポジトリに移行するときにコードを変更する必要はありません。

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ハンドル引数で識別されるクラウド・コード・リポジトリを更新します。このプロシージャは、クラウド・コード・リポジトリでサポートされている名前、説明またはプライベート可視性ステータスの更新をサポートしています。

DBMS_CLOUD_REPOリポジトリ・ブランチ管理操作

DBMS_CLOUD_REPOパッケージ内のリポジトリ・ブランチ管理操作のサブプログラムをリストします。

サブプログラム 説明

CREATE_BRANCHプロシージャ

このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリにブランチを作成します。

DELETE_BRANCHプロシージャ

このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリ内のブランチを削除します。

LIST_BRANCHESファンクション

このファンクションは、repoハンドル引数で識別されるすべてのクラウド・コード・リポジトリ・ブランチをリストします。

LIST_COMMITSファンクション

このファンクションは、repoハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチ内のすべてのコミットをリストします。

MERGE_BRANCHプロシージャ

このプロシージャは、クラウド・コード・リポジトリ・ブランチを、repoハンドル引数で識別されるクラウド・コード・リポジトリ内の別の指定されたブランチにマージします。

DBMS_CLOUD_REPOファイル操作

DBMS_CLOUD_REPOパッケージ内のファイル操作のサブプログラムをリストします。

サブプログラム 説明

DELETE_FILEプロシージャ

このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリからファイルを削除します。

GET_FILEプロシージャおよびファンクション

このファンクションは、クラウド・コード・リポジトリからファイルのコンテンツをダウンロードします。このプロシージャでは、クラウド・コード・リポジトリからファイルのコンテンツをダウンロードし、そのファイルをディレクトリに保存できます。

LIST_FILESファンクション

このファンクションは、クラウド・コード・リポジトリからファイルをダウンロードします。オプションで、特定のブランチ、タグまたはコミット名からファイル・コンテンツにアクセスできます。デフォルトでは、ファイルはデフォルトのリポジトリ・ブランチからアクセスされます。

PUT_FILEプロシージャ

このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリにファイルをアップロードします。このプロシージャは、ディレクトリ・オブジェクトからのファイルのアップロード、またはCLOBからリポジトリ・ファイルへのコンテンツのアップロードをサポートするためにオーバーロードされています。

DBMS_CLOUD_REPO SQLインストール操作

DBMS_CLOUD_REPOパッケージ内のSQLインストール操作のサブプログラムをリストします。

サブプログラム 説明

EXPORT_OBJECTプロシージャ

このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリにデータベース・オブジェクトのDDLメタデータをアップロードします。

EXPORT_SCHEMAプロシージャ

このプロシージャは、スキーマ内のすべてのオブジェクトのメタデータを、repoハンドル引数で識別されるクラウド・コード・リポジトリ・ブランチにエクスポートします。

INSTALL_FILEプロシージャ

このプロシージャは、repoハンドル引数で識別されるクラウド・コード・リポジトリのファイルからSQL文をインストールします。

INSTALL_SQLプロシージャ

このプロシージャは、入力として指定されたバッファからSQL文をインストールします。