DBMS_CLOUD_REPO 서브 프로그램 요약

이 절에서는 Autonomous Database와 함께 제공되는 DBMS_CLOUD_REPO 서브프로그램을 다룹니다.

관련 항목

필요 조건

개발자는 Oracle Public Cloud, 멀티클라우드 또는 Exadata Cloud@Customer에 배포된 Autonomous Database에서 DBMS_CLOUD 절차를 사용할 수 있습니다.

배포 선택에 따라 Amazon S3, Azure Blob StorageGoogle Cloud Storage 서비스 제공업체와 함께 DBMS_CLOUD 절차를 사용하려면 다음 필요 조건이 충족되어야 합니다.

플리트 관리자가 아래 설명된 대로 NAT 게이트웨이를 사용하여 아웃바운드 접속을 구성해야 합니다.
  • Oracle Cloud Infrastructure 문서NAT 게이트웨이 생성 지침에 따라 Autonomous Database 리소스가 상주하는 VCN(가상 클라우드 네트워크)에서 NAT 게이트웨이를 생성합니다.
  • NAT 게이트웨이를 생성한 후 각 서브넷(VCN 내)에 경로 규칙 및 송신 보안 규칙을 추가합니다. 여기서 Autonomous Database 리소스는 게이트웨이를 사용하여 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
      • 대상 포트 범위: 모두

      해당 규칙이 없으면 Add Egress Rules를 누르고 이러한 특성을 가진 송신 규칙을 추가합니다.

환경의 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에서 지원하는 객체 유형입니다. 자세한 내용은 DBMS_METADATA: Object Types table in Oracle Database 19c PL/SQL Packages and Types Reference 또는 Oracle Database 23ai 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_DDLDBMS_CLOUD_REPO.PUT_FILE과 함께 사용할 수 있습니다. 객체의 메타데이터 정의를 가져오려면 현재 사용자에게 객체 메타데이터를 검색할 수 있는 권한이 있어야 합니다. 패키지의 보안 요구사항은 DBMS_METADATA in Oracle Database 19c PL/SQL Packages and Types Reference 또는 Oracle Database 23ai 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 핸들 인수로 식별된 Cloud Code Repository 분기로 익스포트합니다.

구문

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 저장소 핸들을 초기화하고 불투명 유형을 반환합니다.This function initializes an Azure repository handle and returns an opaque type. 이 기능은 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 문 실행을 정지합니다.

사용법 참고

  • 다음을 사용하여 클라우드 코드 저장소 파일에서 중첩 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는 Cloud Code Repository 분기의 이름을 나타내는 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 특정 분기의 커밋을 나열합니다.

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

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_commit_ret_tab.인 파이프 라인된 테이블 함수입니다.

  • DBMS_CLOUD_REPO.LIST_COMMITScommit_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_FILESid, name, urlbytes 열을 반환합니다.

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 클라우드 공급자에 대해 지원됩니다.

사용법 참고

  • 반환 유형이 list_repo_ret_tab.인 파이프라인 테이블 함수입니다.

  • DBMS_CLOUD_REPO.LIST_REPOSITORIESid, name, owner, description, private, url, bytes, createdlast_modified 열을 반환합니다.

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는 클라우드 코드 저장소에서 지원되는 이름, 설명 또는 프라이빗 가시성 상태 업데이트를 지원합니다.

구문

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;
/