DBMS_CLOUD_REPO 서브 프로그램 요약

이 섹션에서는 자율운영 AI 데이터베이스와 함께 제공되는 DBMS_CLOUD_REPO 서브 프로그램에 대해 다룹니다.

DBMS_CLOUD_REPO 패키지는 다음으로 구성됩니다.

필수 조건

개발자는 Oracle Public Cloud, 멀티클라우드 또는 Exadata Cloud@Customer에 배포된 자율운영 AI 데이터베이스와 함께 DBMS_CLOUD 절차를 사용할 수 있습니다.

배포 선택에 따라 Amazon S3, Azure Blob Storage 및 Google Cloud Storage 서비스 공급자와 함께 DBMS_CLOUD 절차를 사용하려면 다음 필요 조건을 충족해야 합니다.

아래에 설명된 대로 플리트 관리자가 NAT 게이트웨이를 사용하여 아웃바운드 접속을 구성했어야 합니다.

  • Oracle Cloud Infrastructure 문서NAT 게이트웨이 생성 지침에 따라 자율운영 AI 데이터베이스 리소스가 상주하는 VCN(가상 클라우드 네트워크)에 NAT 게이트웨이를 생성합니다.

  • NAT 게이트웨이를 생성한 후 자율운영 AI 데이터베이스 리소스가 상주하는 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 프록시 설정에서 데이터베이스가 클라우드 서비스 공급자에 액세스할 수 있도록 허용해야 합니다.

해당 설정은 콘솔을 사용하여 Cloud@Customer에서 Exadata Database Service 프로비전에 설명된 대로 Exadata Cloud@Customer 인프라를 생성하는 동안 플리트 관리자가 정의합니다.

주: HTTP 프록시를 포함한 네트워크 구성은 Exadata 인프라가 활성화 필요 상태가 될 때까지만 편집할 수 있습니다. 일단 활성화되면 해당 설정을 편집할 수 없습니다.

이미 프로비전된 Exadata 인프라에 대해 HTTP 프록시를 설정하려면 My Oracle Support에서 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
 );

매개변수

매개변수 설명
repo

저장소 핸들을 지정합니다.

이 매개변수는 필수이며 모든 클라우드 제공자에 대해 지원됩니다.

branch_name

저장소 브랜치 이름을 지정합니다.

이 매개변수는 필수이며 모든 클라우드 제공자에 대해 지원됩니다.

parent_branch_name

지정된 상위 분기의 헤드 커밋을 사용하여 새 분기를 생성합니다.

이 매개변수는 모든 클라우드 제공자에 대해 지원됩니다.

parent_branch_name 값을 제공하지 않을 경우 parent_branch_namemain로 설정됩니다.

parent_commit_id

지정된 저장소 커밋을 사용하여 새 분기를 생성합니다.

이 매개변수는 모든 클라우드 제공자에 대해 지원됩니다.

parent_commit_id 값을 제공하지 않으면 parent_commit_id가 NULL 값으로 설정됩니다.

주: 클라우드 코드 저장소에서 분기를 생성하려면 상위 분기 또는 상위 커밋 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 핸들 인수로 식별된 클라우드 코드 저장소로 업로드합니다. 이 프로시저는 데이터베이스 객체의 메타 데이터 정의를 한 번에 업로드하는 간단한 방법입니다.

구문

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에서 지원하는 객체 유형입니다. 자세한 내용은 Oracle Database 19c PL/SQL Packages and Types ReferenceDBMS_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_CLOUD_REPO.PUT_FILE와 함께 DBMS_METADATA.GET_DDL를 사용할 수 있습니다. 객체의 메타데이터 정의를 가져오려면 현재 사용자에게 객체 메타데이터를 검색할 수 있는 권한이 있어야 합니다. 패키지의 보안 요구 사항은 Oracle Database 19c PL/SQL Packages and Types ReferenceDBMS_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
);

매개변수

매개변수 설명
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_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를 지정하는 인증서 객체입니다.

사용자 이메일 및 개인 액세스 토큰 (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 문 실행을 정지합니다.

사용법 참고

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 문 실행을 정지합니다.

사용법 참고

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_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

특정 분기의 커밋을 나열합니다.

이 매개변수는 모든 클라우드 제공자에 대해 지원됩니다.

branch_name 값을 제공하지 않을 경우 branch_namemain로 설정됩니다.

file_path

저장소의 지정된 하위 폴더 경로 아래에 파일을 나열합니다.

이 매개변수는 Git 및 Azure 클라우드 제공자에 대해서만 지원됩니다.

file_path 값을 제공하지 않을 경우 file_path가 NULL 값으로 설정됩니다.

commit_id

지정된 sha/id에서 시작하는 파일을 나열합니다.

이 매개변수는 모든 클라우드 제공자에 대해 지원됩니다.

commit_id 값을 제공하지 않으면 commit_id가 NULL 값으로 설정됩니다.

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_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 특정 커밋의 파일을 나열합니다.

사용법 참고

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;

매개변수

매개변수 설명
repo

저장소 핸들을 지정합니다.

이 매개변수는 모든 클라우드 제공자가 지원합니다.

description

저장소에 대한 짧은 텍스트 설명입니다.

이 매개변수는 GITHUB 및 AWS 클라우드 제공자를 지원합니다.

private

저장소가 프라이빗이며 적합한 인증서를 통해서만 액세스할 수 있습니다.

이 매개변수는 GITHUB 클라우드 제공자에 대해 지원됩니다.

사용법 참고

SELECT name description FROM DBMS_CLOUD_REPO.LIST_REPOSITORIES(:repo);
NAME                  DESCRIPTION
--------------------- ---------------
TestRepo1             My test 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" } }

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 핸들 인수로 식별된 클라우드 코드 저장소에 파일을 업로드합니다. 디렉토리 객체에서 파일을 업로드하거나 BLOB에서 Repository 파일로 컨텐트를 업로드할 수 있도록 프로시저가 오버로드됩니다.

구문

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는 클라우드 코드 저장소에서 지원하는 이름, 설명 또는 전용(private) 가시성 상태 갱신을 지원합니다.

구문

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 정보