객체 및 파일의 경우 DBMS_CLOUD
필요 조건
개발자는 Oracle Public Cloud, 멀티클라우드 또는 Exadata Cloud@Customer에 배포된 Autonomous Database에서 DBMS_CLOUD 절차를 사용할 수 있습니다.
배포 선택에 따라 Amazon S3, Azure Blob Storage 및 Google Cloud Storage 서비스 제공업체와 함께 DBMS_CLOUD 절차를 사용하려면 다음 필요 조건이 충족되어야 합니다.
- Oracle Cloud Infrastructure 문서의 NAT 게이트웨이 생성 지침에 따라 Autonomous Database 리소스가 상주하는 VCN(가상 클라우드 네트워크)에서 NAT 게이트웨이를 생성합니다.
- NAT 게이트웨이를 생성한 후 각 서브넷(VCN 내)에 경로 규칙 및 송신 보안 규칙을 추가합니다. 여기서 Autonomous Database 리소스는 게이트웨이를 사용하여 Azure AD 인스턴스에서 퍼블릭 키를 얻을 수 있습니다.
- 서브넷의 서브넷 세부 정보 페이지로 이동합니다.
- 서브넷 정보 탭에서 서브넷의 경로 테이블 이름을 눌러 경로 테이블 세부정보 페이지를 표시합니다.
- 기존 경로 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상: 0.0.0.0/0
- 대상 유형: NAT 게이트웨이
- 대상: VCN에서 방금 생성한 NAT 게이트웨이의 이름입니다.
해당 규칙이 없는 경우 경로 규칙 추가를 누르고 해당 특성을 가진 경로 규칙을 추가합니다.
- 서브넷에 대한 서브넷 세부정보 페이지로 돌아갑니다.
- 서브넷의 보안 목록 테이블에서 서브넷의 보안 목록 이름을 눌러 해당 보안 목록 세부정보 페이지를 표시합니다.
- 사이드 메뉴의 리소스에서 송신 규칙을 누릅니다.
- 기존 송신 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상 유형: CIDR
- 대상: 0.0.0.0/0
- IP 프로토콜: TCP
- 소스 포트 범위: 443
- 대상 포트 범위: 모두
해당 규칙이 없으면 Add Egress Rules를 누르고 이러한 특성을 가진 송신 규칙을 추가합니다.
환경의 HTTP 프록시 설정에서 데이터베이스가 클라우드 서비스 공급자에 액세스할 수 있도록 허용해야 합니다.
주:
HTTP 프록시를 포함한 네트워크 구성은 Exadata 인프라가 활성화 필요 상태가 될 때까지만 편집할 수 있습니다. 활성화된 후에는 해당 설정을 편집할 수 없습니다.이미 프로비전된 Exadata 인프라에 대해 HTTP 프록시를 설정하려면 My Oracle Support에서 SR(서비스 요청)이 필요합니다. 자세한 내용은 My Oracle Support에서 서비스 요청 생성을 참조하십시오.
객체 및 파일에 대한 DBMS_CLOUD 하위 프로그램
DBMS_CLOUD 패키지 내의 객체 및 파일 관리를 위한 서브 프로그램입니다.
하위 프로그램 | 설명 |
---|---|
이 프로시저는 클라우드 객체 스토리지 또는 디렉토리의 파일에서 기존 SODA 모음으로 데이터를 로드합니다. | |
이 절차에서는 Cloud Object Storage 또는 디렉토리의 파일에서 기존 Autonomous Database 테이블로 데이터를 로드합니다. | |
format 매개변수 type 가 orc , parquet 또는 avro 값으로 설정된 이 절차는 클라우드의 ORC, Parquet 또는 Avro 파일이나 디렉토리의 ORC, Parquet 또는 Avro 파일에서 기존 Autonomous Database 테이블로 데이터를 로드합니다.
텍스트 파일과 마찬가지로 데이터는 소스 ORC, Parquet 또는 Avro 파일에서 기존 내부 테이블로 복사됩니다. |
|
이 절차에서는 한 클라우드 오브젝트 스토리지 버킷의 파일을 다른 버킷으로 복사합니다. | |
이 프로시저는 클라우드의 파일이나 디렉토리의 파일에 External Table을 생성합니다. 그러면 Autonomous Database의 외부 데이터에 대한 질의를 실행할 수 있습니다. | |
format 매개변수 type 가 parquet , orc 또는 avro 값으로 설정된 이 프로시저는 클라우드 또는 디렉토리에 Parquet, ORC 또는 Avro 형식 파일이 있는 외부 테이블을 생성합니다.
그러면 Autonomous Database의 외부 데이터에 대한 질의를 실행할 수 있습니다. |
|
이 프로시저는 객체 저장소 파일에 텍스트 인덱스를 생성합니다. |
|
이 프로시저는 하이브리드 분할 테이블을 생성합니다. 이를 통해 Autonomous Database의 하이브리드 분할 데이터에 대한 쿼리를 실행할 수 있습니다. | |
이 프로시저는 type 매개변수에 표시된 대로 스키마의 user_load_operations 테이블에 기록된 모든 데이터 로드 작업을 지우거나 지정된 유형의 모든 데이터 로드 작업을 지웁니다.
|
|
이 절차에서는 Autonomous Database의 지정된 디렉토리에서 지정된 파일을 제거합니다. | |
이 프로시저는 객체 저장소에서 지정된 객체를 삭제합니다. | |
이 프로시저는 |
|
이 프로시저는 객체 저장소 파일의 텍스트 인덱스를 삭제합니다. |
|
이 절차에서는 쿼리 결과를 기반으로 Autonomous Database에서 클라우드 파일로 데이터를 내보냅니다. 오버로드된 폼에서는 operation_id 매개변수를 사용할 수 있습니다. 지정된 format 매개변수 type 옵션에 따라 프로시저는 CSV, JSON, Parquet 또는 XML 옵션이 있는 텍스트로 행을 클라우드 객체 저장소로 익스포트합니다. |
|
이 프로시저는 오버로드됩니다. 절차 양식은 클라우드 오브젝트 스토리지에서 오브젝트를 읽고 Autonomous Database에 복사합니다. 함수 폼은 Cloud Object Storage에서 객체를 읽고 BLOB 을 Autonomous Database로 반환합니다.
|
|
이 함수는 지정된 디렉토리의 파일을 나열합니다. 결과에는 파일 이름 및 파일에 대한 추가 메타 데이터(예: 바이트 단위의 파일 크기, 생성 시간 기록 및 마지막 수정 시간 기록)가 포함됩니다. | |
이 함수는 객체 저장소의 지정된 위치에 있는 객체를 나열합니다. 결과에는 객체 이름과 객체에 대한 추가 메타 데이터(예: 크기, 체크섬, 생성 시간 기록 및 마지막 수정 시간 기록)가 포함됩니다. | |
이 절차에서는 오브젝트를 한 클라우드 오브젝트 스토리지 버킷에서 다른 버킷으로 이동합니다. | |
이 프로시저는 오버로드됩니다. 절차에서는 Autonomous Database의 파일을 클라우드 객체 스토리지로 복사합니다. 다른 양식에서 이 절차는 Autonomous Database의 BLOB 를 클라우드 객체 스토리지로 복사합니다.
|
|
이 절차에서는 클라우드의 파일에서 외부 분할 테이블을 간단히 업데이트할 수 있습니다. 새 분할 영역이 추가되거나 외부 분할된 테이블에 대한 객체 저장소 소스에서 분할 영역이 제거될 때마다 이 프로시저를 실행합니다. |
|
이 프로시저는 외부 테이블에 대한 소스 파일을 검증하고, 로그 정보를 생성하고, 외부 테이블에 대해 지정된 형식 옵션과 일치하지 않는 행을 Autonomous Database의 badfile 테이블에 저장합니다. | |
이 프로시저는 외부 분할 테이블에 대한 소스 파일을 검증하고, 로그 정보를 생성하고, 외부 테이블에 대해 지정된 형식 옵션과 일치하지 않는 행을 Autonomous Database의 badfile 테이블에 저장합니다. | |
이 절차에서는 하이브리드 분할 테이블에 대한 소스 파일을 검증하고, 로그 정보를 생성하고, 하이브리드 테이블에 대해 지정된 형식 옵션과 일치하지 않는 행을 Autonomous Database의 badfile 테이블에 저장합니다. |
COPY_COLLECTION 프로시저
이 프로시저는 클라우드 객체 스토리지 또는 디렉토리에서 SODA 모음으로 데이터를 로드합니다. 지정된 SODA 컬렉션이 없으면 프로시저가 해당 컬렉션을 생성합니다. 오버로드된 폼에서는 operation_id
매개변수를 사용할 수 있습니다.
구문
DBMS_CLOUD.COPY_COLLECTION
(
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL
);
DBMS_CLOUD.COPY_COLLECTION
(
collection_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER
);
매개변수
매개변수 | 설명 |
---|---|
|
데이터를 로드할 SODA 모음의 이름입니다. 이 이름의 모음이 존재하는 경우 지정된 데이터가 로드되고, 그렇지 않으면 새 모음이 생성됩니다. |
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다.
|
|
이 매개변수는 쉼표로 구분된 소스 파일 URI 목록 또는 하나 이상의 디렉토리와 소스 파일을 지정합니다. 클라우드 소스 파일 URI 클라우드 소스 파일 URI의 파일 이름에 와일드카드와 정규 표현식을 사용할 수 있습니다. 정규 표현식은
정규 표현식 패턴은 URI의 파일 이름 또는 하위 폴더 경로에 대해서만 지원되며 패턴 일치는 예:
URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
디렉토리 하나의 디렉토리와 하나 이상의 파일 이름을 지정하거나 콤마로 구분된 디렉토리 및 파일 이름 목록을 사용할 수 있습니다. 디렉토리를 지정하는 형식은 와일드카드를 사용하여 디렉토리에서 파일 이름을 지정할 수 있습니다. 문자 "*"는 다중 문자에 대한 와일드카드로 사용할 수 있으며, 문자 "?"는 단일 문자에 대한 와일드카드로 사용할 수 있습니다. 예: 여러 디렉토리를 지정하려면 콤마로 구분된 디렉토리 목록을 사용합니다. 예: 대소문자를 구분하는 디렉토리 이름을 지정하려면 큰 따옴표를 사용합니다. 예: 따옴표를 포함하려면 두 개의 따옴표를 사용합니다. 예: |
|
소스 파일의 형식을 설명하는 옵션입니다. 이러한 옵션은 JSON 문자열로 지정됩니다. 지원되는 형식은 JSON 데이터에 대해 언급된 형식 외에도 Autonomous Database는 다른 형식도 지원합니다. Autonomous Database에서 지원되는 형식 인수 목록은 형식 매개변수를 참조하십시오. |
|
이 매개변수를 사용하여 로드 작업의 진행률 및 최종 상태를 |
예
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
username => 'user_name@oracle.com',
password => 'password'
);
DBMS_CLOUD.COPY_COLLECTION
(
collection_name => 'myCollection',
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'
);
END;
/
COPY_DATA 프로시저
이 절차에서는 클라우드의 파일 또는 디렉토리의 파일에서 기존 Autonomous Database 테이블로 데이터를 로드합니다. 오버로드된 폼에서는 operation_id
매개변수를 사용할 수 있습니다.
구문
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2,
field_list IN CLOB,
format IN CLOB);
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
schema_name IN VARCHAR2 DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
operation_id OUT NOCOPY NUMBER);
매개변수
매개변수 | 설명 |
---|---|
|
데이터베이스에서 대상 테이블의 이름입니다. |
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다.
|
|
클라우드 소스 파일 URI의 파일 이름에 와일드카드와 정규 표현식을 사용할 수 있습니다. 클라우드 소스 파일 URI 이 매개변수는 쉼표로 구분된 소스 파일 URI 목록 또는 하나 이상의 디렉토리와 소스 파일을 지정합니다. 정규 표현식은
정규 표현식 패턴은 URI의 파일 이름 또는 하위 폴더 경로에 대해서만 지원되며 패턴 일치는 예:
URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
디렉토리 하나의 디렉토리와 하나 이상의 파일 이름을 지정하거나 콤마로 구분된 디렉토리 및 파일 이름 목록을 사용할 수 있습니다. 디렉토리를 지정하는 형식은 와일드카드를 사용하여 디렉토리에서 파일 이름을 지정할 수 있습니다. 문자 "*"는 다중 문자에 대한 와일드카드로 사용할 수 있으며, 문자 "?"는 단일 문자에 대한 와일드카드로 사용할 수 있습니다. 예: 여러 디렉토리를 지정하려면 콤마로 구분된 디렉토리 목록을 사용합니다. 예: 대소문자를 구분하는 디렉토리 이름을 지정하려면 큰 따옴표를 사용합니다. 예: 따옴표를 포함하려면 두 개의 따옴표를 사용합니다. 예: |
|
대상 테이블이 상주하는 스키마의 이름입니다. 기본값은 대상 테이블이 프로시저를 실행하는 유저와 동일한 스키마에 있음을 의미하는 NULL입니다. |
|
소스 파일의 필드 및 해당 데이터 유형을 식별합니다. 기본값은 NULL이며, 이는 필드 및 해당 데이터 유형이 column_list 매개변수에 의해 결정됨을 의미합니다. 이 인수의 구문은 일반 Oracle External Table의
|
|
소스, 로그 및 잘못된 파일의 형식을 설명하는 옵션입니다. 옵션 목록 및 값 지정 방법은 형식 매개변수를 참조하십시오. Avro, ORC 또는 Parquet 파일 형식 옵션은 DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet을 참조하십시오. |
|
이 매개변수를 사용하여 로드 작업의 진행률 및 최종 상태를 |
사용법 노트
기본 레코드 구분자는 detected newline
입니다. detected newline
를 사용할 경우 DBMS_CLOUD
는 레코드 구분자로 사용할 올바른 줄바꿈 문자를 자동으로 찾으려고 시도합니다. DBMS_CLOUD
는 먼저 Windows 개행 문자 \r\n
를 검색합니다. Windows 줄바꿈 문자를 찾으면 이 문자가 절차의 모든 파일에 대한 레코드 구분자로 사용됩니다. Windows 개행 문자를 찾을 수 없는 경우 DBMS_CLOUD
는 UNIX/Linux 개행 문자 \n
를 검색하고, 찾은 경우 \n
를 절차의 모든 파일에 대한 레코드 구분자로 사용합니다. 소스 파일에서 서로 다른 레코드 구분자의 조합을 사용하는 경우 "KUP-04020: found record longer than buffer size supported
"과 같은 오류가 발생할 수 있습니다. 이 경우 동일한 레코드 구분자를 사용하도록 소스 파일을 수정하거나 동일한 레코드 구분자를 사용하는 소스 파일만 지정해야 합니다.
recorddelmiter
형식 옵션에 대한 자세한 내용은 형식 매개변수를 참조하십시오.
예
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'user_name@oracle.com',
password => 'password'
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name =>'CHANNELS',
credential_name =>'DEF_CRED_NAME',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
format => json_object('delimiter' value ',')
);
END;
/
BEGIN
DBMS_CLOUD.COPY_DATA
(
table_name => 'ORDERS',
schema_name => 'TEST_SCHEMA',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
format => json_object('ignoreblanklines' value TRUE,
'rejectlimit' value '0',
'dateformat' value 'yyyy-mm-dd',
'regexuri' value TRUE)
);
END;
/
Avro, ORC, Parquet 파일에 대한 COPY_DATA 절차
format
매개변수 type
이 avro
, orc
또는 parquet
값으로 설정된 이 절차는 클라우드의 Avro, ORC, Parquet 파일 또는 디렉토리의 파일에서 기존 Autonomous Database 테이블로 데이터를 로드합니다.
텍스트 파일과 마찬가지로 데이터는 소스 Avro, ORC 또는 Parquet 파일에서 기존 내부 테이블로 복사됩니다.
구문
DBMS_CLOUD.COPY_DATA
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
schema_name IN VARCHAR2 DEFAULT,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
매개변수
매개변수 | 설명 |
---|---|
|
데이터베이스에서 대상 테이블의 이름입니다. |
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다.
|
|
이 매개변수는 쉼표로 구분된 소스 파일 URI 목록 또는 하나 이상의 디렉토리와 소스 파일을 지정합니다. 클라우드 소스 파일 URI 클라우드 소스 파일 URI의 파일 이름에 와일드카드와 정규 표현식을 사용할 수 있습니다. 정규 표현식은
정규 표현식 패턴은 URI의 파일 이름 또는 하위 폴더 경로에 대해서만 지원되며 패턴 일치는 예:
URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
디렉토리 하나의 디렉토리와 하나 이상의 파일 이름을 지정하거나 콤마로 구분된 디렉토리 및 파일 이름 목록을 사용할 수 있습니다. 디렉토리를 지정하는 형식은 와일드카드를 사용하여 디렉토리에서 파일 이름을 지정할 수 있습니다. 문자 "*"는 다중 문자에 대한 와일드카드로 사용할 수 있으며, 문자 "?"는 단일 문자에 대한 와일드카드로 사용할 수 있습니다. 예: 여러 디렉토리를 지정하려면 콤마로 구분된 디렉토리 목록을 사용합니다. 예: 대소문자를 구분하는 디렉토리 이름을 지정하려면 큰 따옴표를 사용합니다. 예: 따옴표를 포함하려면 두 개의 따옴표를 사용합니다. 예: |
|
대상 테이블이 상주하는 스키마의 이름입니다. 기본값은 대상 테이블이 프로시저를 실행하는 유저와 동일한 스키마에 있음을 의미하는 NULL입니다. |
|
Avro, ORC 또는 Parquet 파일의 경우 무시됩니다. 소스의 필드가 외부 테이블 열 이름과 일치합니다. 소스 데이터 유형은 External Table 열 데이터 유형으로 변환됩니다. ORC 파일의 경우 DBMS_CLOUD Package ORC to Oracle Data Type Mapping을 참조하십시오. Parquet 파일의 경우 매핑에 대한 자세한 내용은 DBMS_CLOUD Package Parquet to Oracle Data Type Mapping을 참조하십시오. Avro 파일의 경우 매핑에 대한 자세한 내용은 DBMS_CLOUD Package Avro to Oracle Data Type Mapping을 참조하십시오. |
|
소스 파일의 형식을 설명하는 옵션입니다. Avro, ORC 또는 Parquet 파일의 경우 두 가지 옵션만 지원됩니다. DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet을 참조하십시오. |
사용법 참고
-
다른 데이터 파일과 마찬가지로 Avro, ORC, Parquet 데이터 로드는
dba_load_operations
및user_load_operations
테이블에서 볼 수 있는 로그를 생성합니다. 각 로드 작업은 로그를 포함하는 테이블을 나타내는 레코드를dba
[user]_load_operations
에 추가합니다.로그 테이블은 로드에 대한 요약 정보를 제공합니다.
-
Avro, ORC 또는 Parquet의 경우
format
매개변수type
이avro
,orc
또는parquet
값으로 설정된 경우BADFILE_TABLE
테이블은 항상 비어 있습니다.-
Parquet 파일의 경우
PRIMARY KEY
제약 조건 오류가 발생하면ORA
오류가 발생합니다. -
열의 데이터에 변환 오류가 발생하는 경우(예: 대상 열이 변환된 값을 보유할 만큼 크지 않은 경우) 해당 열의 값은
NULL
로 설정됩니다. 거부된 레코드를 생성하지 않습니다.
-
COPY_OBJECT 프로시저
이 절차에서는 오브젝트를 클라우드 오브젝트 스토리지 버킷 또는 폴더 간에 복사합니다.
소스 및 대상 버킷 또는 폴더는 동일하거나 다른 클라우드 객체 저장소 제공자에 있을 수 있습니다.
소스와 대상이 고유 객체 저장소에 있거나 동일한 클라우드 제공자의 계정이 다른 경우 소스 및 대상 위치에 대해 별도의 인증서 이름을 지정할 수 있습니다.
소스 인증서 이름은 기본적으로 대상 인증서 이름이 제공되지 않은 경우 대상 위치에서도 사용됩니다.
구문
DBMS_CLOUD.COPY_OBJECT
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
매개변수
매개변수 | 설명 |
---|---|
|
소스 클라우드 객체 스토리지에 액세스할 인증서의 이름입니다.
|
|
소스 오브젝트 스토리지 버킷 또는 폴더 위치를 가리키는 URI를 지정합니다. 이 매개변수는 필수입니다. URI의 형식은 클라우드 객체 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
|
대상 객체 저장소에 대한 URI를 지정합니다. 이 매개변수는 필수입니다. URI의 형식은 클라우드 객체 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
|
대상 클라우드 객체 스토리지 위치에 액세스할 인증서의 이름입니다.
|
예
BEGIN
DBMS_CLOUD.COPY_OBJECT
(
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
CREATE_EXTERNAL_PART_TABLE 프로시저
이 절차에서는 클라우드의 파일 또는 디렉토리의 파일에 대해 외부 분할 테이블을 만듭니다. 그러면 Autonomous Database의 외부 데이터에 대한 질의를 실행할 수 있습니다.
구문
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN VARCHAR2,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
매개변수
매개변수 | 설명 |
---|---|
|
외부 테이블의 이름입니다. |
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다. |
|
개별 분할 영역에 대한 위치 정보를 포함하여 전체 분할 절을 지정합니다.
|
|
이 매개변수는 쉼표로 구분된 소스 파일 URI 목록 또는 하나 이상의 디렉토리와 소스 파일을 지정합니다. 클라우드 소스 파일 URI 클라우드 소스 파일 URI의 파일 이름에 와일드카드와 정규 표현식을 사용할 수 있습니다. 정규 표현식은
정규 표현식 패턴은 URI의 파일 이름 또는 하위 폴더 경로에 대해서만 지원되며 패턴 일치는 이 옵션은 오브젝트 스토리지의 파일에 생성된 외부 테이블에서만 지원됩니다. 예:
URI의 형식은 클라우드 객체 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
|
|
External Table에 대한 쉼표로 구분된 열 이름 및 데이터 유형 리스트입니다. 이 매개변수의 요구 사항은
|
|
소스 파일의 필드 및 해당 데이터 유형을 식별합니다. 기본값은 NULL이며, 이는 필드 및 해당 데이터 유형이 column_list 매개변수에 의해 결정됨을 의미합니다. 이 인수의 구문은 일반 Oracle External Table의 |
|
형식 옵션
데이터 파일이 구조화되지 않고 하이브 형식을 기반으로 하지 않는 객체 이름의 경우 소스 파일의 형식을 설명하는 |
사용법 참고
-
partitioning_clause
및file_uri_list
매개변수를 사용하여 이 프로시저를 호출할 수 없습니다. -
column_list
매개변수 지정은 Avro, Parquet 또는 ORC 데이터 파일을 포함한 구조화된 데이터 파일의 경우 선택 사항입니다.column_list
가 지정되지 않은 경우format
매개변수partition_columns
옵션에name
와type
가 모두 포함되어야 합니다. -
CSV 텍스트 파일과 같이 구조화되지 않은 데이터 파일에는
column_list
매개변수가 필요합니다. -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
절차는 다음을 포함하여 지원되는 클라우드 객체 스토리지 서비스에서 외부 분할 파일을 지원합니다.-
Oracle Cloud Infrastructure Object Storage
-
Azure Blob Storage
자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
-
-
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
절차는 로컬 파일 시스템 또는 네트워크 파일 시스템의 디렉토리에서 외부 분할된 파일을 지원합니다. -
file_uri_list
매개변수를 사용하여DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
을 호출하는 경우 클라우드 객체 저장소 파일 이름에 지정된 열 유형은 다음 유형 중 하나여야 합니다.VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9)
-
기본 레코드 구분자는
detected newline
입니다.detected newline
를 사용할 경우DBMS_CLOUD
는 레코드 구분자로 사용할 올바른 줄바꿈 문자를 자동으로 찾으려고 시도합니다.DBMS_CLOUD
는 먼저 Windows 개행 문자\r\n
를 검색합니다. Windows 줄바꿈 문자를 찾으면 이 문자가 절차의 모든 파일에 대한 레코드 구분자로 사용됩니다. Windows 개행 문자를 찾을 수 없는 경우DBMS_CLOUD
는 UNIX/Linux 개행 문자\n
를 검색하고, 찾은 경우\n
를 절차의 모든 파일에 대한 레코드 구분자로 사용합니다. 소스 파일에서 서로 다른 레코드 구분자의 조합을 사용하는 경우 "KUP-04020: found record longer than buffer size supported
"과 같은 오류가 발생할 수 있습니다. 이 경우 동일한 레코드 구분자를 사용하도록 소스 파일을 수정하거나 동일한 레코드 구분자를 사용하는 소스 파일만 지정해야 합니다.recorddelmiter
형식 옵션에 대한 자세한 내용은 Cloud Object Storage URI Formats를 참조하십시오. -
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
로 만든 외부 분할 테이블에는 두 개의 보이지 않는 열file$path
및file$name
가 포함됩니다. 이러한 열은 레코드를 가져올 파일을 식별하는 데 도움이 됩니다.-
file$path
: 객체 이름의 시작 부분까지 파일 경로 텍스트를 지정합니다. -
file$name
: 버킷 이름 뒤에 오는 모든 텍스트를 포함하여 객체 이름을 지정합니다.
-
예
partitioning_clause
매개변수를 사용하는 예제:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name =>'PET1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) location
( ''&base_URL//file_11.txt'')
,
partition p2 values less than (2000) location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000) location
( ''&base_URL/file_31.txt'')
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'PET',
format => json_object('delimiter'value ','),
column_list => 'name varchar2(20), gender varchar2(10), salary number',
partitioning_clause => 'partition by range (salary)
( -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR
partition p1 values less than (100) LOCATION (''test1.csv''),
-- Use test2.csv in a specified directory MY_DIR
partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'') )' );
END;
/
구조화되지 않은 데이터 파일에 file_uri_list
및 column_list
매개변수를 사용하는 예제:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.csv',
column_list => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)',
field_list => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
format => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/
구조화된 데이터 파일에 column_list
매개변수를 사용하지 않고 file_uri_list
를 사용하는 예제:
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
(
table_name => 'MYSALES',
credential_name => 'DEF_CRED_NAME',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.parquet',
format =>
json_object('type' value 'parquet', 'schema' value 'first',
'partition_columns' value
json_array(
json_object('name' value 'country', 'type' value 'varchar2(100)'),
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'varchar2(2)')
)
)
);
END;
/
CREATE_EXTERNAL_TABLE 프로시저
이 프로시저는 클라우드의 파일이나 디렉토리의 파일에서 External Table을 생성합니다. 그러면 Autonomous Database의 외부 데이터에 대한 질의를 실행할 수 있습니다.
구문
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
매개변수
매개변수 | 설명 |
---|---|
|
외부 테이블의 이름입니다. |
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다.
|
|
이 매개변수는 쉼표로 구분된 소스 파일 URI 목록 또는 하나 이상의 디렉토리와 소스 파일을 지정합니다. 클라우드 소스 파일 URI 클라우드 소스 파일 URI의 파일 이름에 와일드카드와 정규 표현식을 사용할 수 있습니다. 정규 표현식은
정규 표현식 패턴은 URI의 파일 이름 또는 하위 폴더 경로에 대해서만 지원되며 패턴 일치는 이 옵션은 오브젝트 스토리지의 파일에 생성된 외부 테이블에서만 지원됩니다. 예:
URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
하나의 디렉토리와 하나 이상의 파일 이름을 지정하거나 콤마로 구분된 디렉토리 및 파일 이름 목록을 사용할 수 있습니다. 디렉토리를 지정하는 형식은 와일드카드를 사용하여 디렉토리에서 파일 이름을 지정할 수 있습니다. 문자 "*"는 다중 문자에 대한 와일드카드로 사용할 수 있으며, 문자 "?"는 단일 문자에 대한 와일드카드로 사용할 수 있습니다. 예: 여러 디렉토리를 지정하려면 콤마로 구분된 디렉토리 목록을 사용합니다. 예: 대소문자를 구분하는 디렉토리 이름을 지정하려면 큰 따옴표를 사용합니다. 예: 따옴표를 포함하려면 두 개의 따옴표를 사용합니다. 예: |
|
External Table에 대한 쉼표로 구분된 열 이름 및 데이터 유형 리스트입니다. |
|
소스 파일의 필드 및 해당 데이터 유형을 식별합니다. 기본값은 NULL이며, 이는 필드 및 해당 데이터 유형이 |
|
소스 파일의 형식을 설명하는 옵션입니다. 옵션 목록 및 값 지정 방법은 형식 매개변수를 참조하십시오. Avro, ORC 또는 Parquet 형식 파일의 경우 CREATE_EXTERNAL_TABLE Procedure for Avro, ORC, or Parquet Files를 참조하십시오. |
사용법 참고
-
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
절차는 Azure Blob Storage를 포함하여 지원되는 클라우드 객체 스토리지 서비스에서 외부 분할 파일을 지원합니다.인증서는 테이블 레벨 속성이므로 외부 파일은 동일한 객체 저장소에 있어야 합니다.
자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
-
기본 레코드 구분자는
detected newline
입니다.detected newline
를 사용할 경우DBMS_CLOUD
는 레코드 구분자로 사용할 올바른 줄바꿈 문자를 자동으로 찾으려고 시도합니다.DBMS_CLOUD
는 먼저 Windows 개행 문자\r\n
를 검색합니다. Windows 줄바꿈 문자를 찾으면 이 문자가 절차의 모든 파일에 대한 레코드 구분자로 사용됩니다. Windows 개행 문자를 찾을 수 없는 경우DBMS_CLOUD
는 UNIX/Linux 개행 문자\n
를 검색하고, 찾은 경우\n
를 절차의 모든 파일에 대한 레코드 구분자로 사용합니다. 소스 파일에서 서로 다른 레코드 구분자의 조합을 사용하는 경우 "KUP-04020: found record longer than buffer size supported
"과 같은 오류가 발생할 수 있습니다. 이 경우 동일한 레코드 구분자를 사용하도록 소스 파일을 수정하거나 동일한 레코드 구분자를 사용하는 소스 파일만 지정해야 합니다.recorddelimiter
형식 옵션에 대한 자세한 내용은 형식 매개변수를 참조하십시오.
예
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name =>'WEATHER_REPORT_DOUBLE_DATE',
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
format => json_object('type' value 'csv', 'skipheaders' value '1'),
field_list => 'REPORT_DATE DATE''mm/dd/yy'',
REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
ACTUAL_MEAN_TEMP,
ACTUAL_MIN_TEMP,
ACTUAL_MAX_TEMP,
AVERAGE_MIN_TEMP,
AVERAGE_MAX_TEMP,
AVERAGE_PRECIPITATION',
column_list => 'REPORT_DATE DATE,
REPORT_DATE_COPY DATE,
ACTUAL_MEAN_TEMP NUMBER,
ACTUAL_MIN_TEMP NUMBER,
ACTUAL_MAX_TEMP NUMBER,
AVERAGE_MIN_TEMP NUMBER,
AVERAGE_MAX_TEMP NUMBER,
AVERAGE_PRECIPITATION NUMBER');
END;
/
SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where
actual_mean_temp > 69 and actual_mean_temp < 74
CREATE_EXTERNAL_TABLE Apache Iceberg 절차
이 프로시저는 지원되는 구성에 Apache Iceberg 테이블에 대한 External Table을 생성합니다.
- AWS의 Iceberg 테이블:
- AWS Glue Data Catalog에 등록된 Iceberg 테이블로, Spark 또는 Athena로 생성됩니다.
자세한 내용은 ACID 트랜잭션이 있는 Apache Iceberg 테이블을 읽고 쓰고 시간 이동을 수행하려면 AWS Glue 커넥터를 사용 및 Iceberg 테이블 사용을 참조하십시오.
- 루트 메타데이터 파일에 대한 URL을 직접 제공하여 AWS S3에 저장된 Iceberg 테이블입니다.
- AWS Glue Data Catalog에 등록된 Iceberg 테이블로, Spark 또는 Athena로 생성됩니다.
- OCI의 Iceberg 테이블:
- Hadoop 카탈로그를 사용하여 OCI Data Flow로 생성된 Iceberg 테이블입니다.
자세한 내용은 Oracle 데이터 플로우 예 및 Hadoop 카탈로그 사용을 참조하십시오.
- 루트 메타데이터 파일에 대한 URL을 직접 제공하여 OCI Object Storage에 저장된 Iceberg 테이블.
- Hadoop 카탈로그를 사용하여 OCI Data Flow로 생성된 Iceberg 테이블입니다.
구문
DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB DEFAULT NULL,
field_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL
);
매개변수
매개변수 | 설명 |
---|---|
|
외부 테이블의 이름입니다. |
|
데이터 파일, 메타데이터 파일 및 Iceberg 카탈로그(사용된 경우)에 액세스하는 데 사용되는 인증서의 이름입니다. AWS 및 OCI 구성의 경우 CREATE_CREDENTIAL 프로시저에 설명된 대로 인증서를 생성해야 합니다. AWS ARN(Amazon Resource Names) 자격 증명은 현재 지원되지 않습니다. |
|
Iceberg 카탈로그가 지정된 경우 NULL이어야 합니다(아래의 format 매개변수 참조). 빙산 카탈로그를 사용하지 않는 경우 file_uri_list 는 빙산 메타데이터 파일에 대한 URI를 포함해야 합니다.
|
|
열 이름과 유형이 Iceberg 메타데이터에서 자동으로 파생되므로 NULL이어야 합니다. 열 이름은 기본 데이터 파일(Parquet, Avro, ORC)에서 찾은 이름과 일치합니다. Oracle 데이터 유형은 Iceberg와 Parquet, Avro 및 ORC 데이터 유형 간의 Parquet/Avro/ORC 매핑을 사용하여 파생됩니다. 따라서 사용자는 |
|
열 이름 및 데이터 유형이 Iceberg 메타데이터에서 자동으로 파생되므로 NULL이어야 합니다. |
|
자세한 내용은 OCI Data Flow Samples의 Iceberg Support 및 DBMS_CLOUD URI Formats를 참고하세요. |
AWS Glue Catalog를 사용하는 AWS Iceberg 테이블에 대한 예제 형식 매개변수
AWS Glue Catalog를 사용하여 AWS Iceberg 테이블에 테이블을 생성할 때의 샘플 format
매개변수는 다음과 같습니다.
format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'aws_glue',
'iceberg_glue_region' value 'glue region',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
매개변수는 다음과 같이 두 개의 요소가 있는 JSON 객체를 포함합니다.
protocol_type
: 'iceberg'여야 합니다.protocol_config
: 빙산 카탈로그 세부정보를 지정하는 중첩된 JSON 객체입니다.iceberg_catalog_type
:'aws_glue'
여야 합니다.iceberg_glue_region
: 카탈로그 영역(예:'us-west-1'
)iceberg_table_path
:glue database.glue table name
경로입니다.
메타데이터 파일 URI를 사용하는 AWS Iceberg 테이블에 대한 예제 형식 매개변수
format
매개변수는 다음과 같습니다.format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
HadoopCatalog 카탈로그를 사용하는 OCI Iceberg 테이블에 대한 예제 형식 매개변수
format
매개변수는 다음과 같습니다.format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg',
'protocol_config' value
json_object('iceberg_catalog_type' value 'hadoop',
'iceberg_warehouse' value '<OCI folder URI>',
'iceberg_table_path' value 'database_name.table_name')));
access_protocol
매개변수는 다음과 같이 두 개의 요소가 있는 JSON 객체를 포함합니다.
protocol_type
:'iceberg'
여야 합니다.protocol_config
: 빙산 카탈로그 세부정보를 지정하는 중첩된 JSON 객체입니다.iceberg_catalog_type
:'hadoop'
여야 합니다.iceberg_warehouse
: 고유 URI 형식으로 테이블을 생성할 때 사용되는 웨어하우스 디렉토리 경로입니다.iceberg_table_path
: 테이블을 생성할 때 사용되는database_name.table name
경로입니다.
메타데이터 파일의 URI를 사용하는 OCI Iceberg 테이블의 예제 형식 매개변수
format
매개변수는 다음과 같습니다.format => json_object('access_protocol' value
json_object('protocol_type' value 'iceberg')
access_protocol
매개변수는 다음과 같이 하나의 요소가 있는 JSON 객체를 포함합니다.
protocol_type
:'iceberg'
여야 합니다.
Avro, ORC, Parquet 파일에 대한 CREATE_EXTERNAL_TABLE 절차
format
매개변수 type
가 avro
, orc
또는 parquet
값으로 설정된 이 프로시저는 클라우드 또는 디렉토리에 Avro, ORC 또는 Parquet 형식 파일이 있는 외부 테이블을 생성합니다.
그러면 Autonomous Database의 외부 데이터에 대한 질의를 실행할 수 있습니다.
구문
DBMS_CLOUD.CREATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
매개변수
매개변수 | 설명 |
---|---|
|
외부 테이블의 이름입니다. |
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다.
|
|
이 매개변수는 쉼표로 구분된 소스 파일 URI 목록 또는 하나 이상의 디렉토리와 소스 파일을 지정합니다. 클라우드 소스 파일 URI 클라우드 소스 파일 URI의 파일 이름에 와일드카드와 정규 표현식을 사용할 수 있습니다. 정규 표현식은
정규 표현식 패턴은 URI의 파일 이름 또는 하위 폴더 경로에 대해서만 지원되며 패턴 일치는 이 옵션은 오브젝트 스토리지의 파일에 생성된 외부 테이블에서만 지원됩니다. 예:
URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
디렉토리 하나의 디렉토리와 하나 이상의 파일 이름을 지정하거나 콤마로 구분된 디렉토리 및 파일 이름 목록을 사용할 수 있습니다. 디렉토리를 지정하는 형식은 와일드카드를 사용하여 디렉토리에서 파일 이름을 지정할 수 있습니다. 문자 "*"는 다중 문자에 대한 와일드카드로 사용할 수 있으며, 문자 "?"는 단일 문자에 대한 와일드카드로 사용할 수 있습니다. 예: 여러 디렉토리를 지정하려면 콤마로 구분된 디렉토리 목록을 사용합니다. 예: 대소문자를 구분하는 디렉토리 이름을 지정하려면 큰 따옴표를 사용합니다. 예: 따옴표를 포함하려면 두 개의 따옴표를 사용합니다. 예: |
|
(선택 사항) 이 필드는 지정된 경우 스키마, 열 및 데이터 유형이 자동으로 파생되도록 지정하는 Avro, ORC 또는 Parquet 소스에 대해 Parquet 파일에 대한 자세한 내용은 DBMS_CLOUD Package Parquet to Oracle Data Type Mapping을 참조하십시오. ORC 파일의 경우 자세한 내용은 DBMS_CLOUD Package ORC to Oracle Data Type Mapping을 참조하십시오. Avro 파일의 경우 자세한 내용은 DBMS_CLOUD Package Avro to Oracle Data Type Mapping을 참조하십시오. |
|
Avro, ORC 또는 Parquet 파일의 경우 무시됩니다. 소스의 필드가 외부 테이블 열 이름과 일치합니다. 소스 데이터 유형은 External Table 열 데이터 유형으로 변환됩니다. ORC 파일의 경우 DBMS_CLOUD Package ORC to Oracle Data Type Mapping을 참조하십시오. Parquet 파일에 대한 자세한 내용은 DBMS_CLOUD Package Parquet to Oracle Data Type Mapping을 참조하십시오. Avro 파일의 경우 자세한 내용은 DBMS_CLOUD Package Avro to Oracle Data Type Mapping을 참조하십시오. |
|
Avro, ORC 또는 Parquet |
예제 ORC
format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')
예 Avro
format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')
예제 연회
format => '{"type":"parquet", "schema": "all"}'
format => json_object('type' value 'parquet', 'schema' value 'first')
Oracle 열 이름에 대한 Avro, ORC 또는 Parquet 열 이름 매핑
Oracle SQL의 열 이름 매핑 및 열 이름 변환 사용에 대한 자세한 내용은 DBMS_CLOUD Package Avro, ORC, and Parquet to Oracle Column Name Mapping을 참조하십시오.
CREATE_EXTERNAL_TEXT_INDEX 프로시저
이 절차에서는 오브젝트 스토리지 파일에 텍스트 인덱스를 생성합니다.
CREATE_EXTERNAL_TEXT_INDEX
프로시저는 location_uri
위치에 지정된 오브젝트 스토리지 파일에 텍스트 인덱스를 생성합니다. 위치 URI에서 파일을 사용하여 새로 추가하거나 삭제한 경우 정기적으로 인덱스가 새로 고쳐집니다.
구문
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
(
credential_name IN VARCHAR2 DEFAULT NULL,
location_uri IN VARCHAR2,
index_name IN VARCHAR2,
format IN CLOB DEFAULT NULL
);
매개변수
매개변수 | 설명 |
---|---|
|
클라우드 객체 스토리지 위치에 액세스할 인증서의 이름입니다. 공용, 사전 인증 또는 사전 서명된 버킷 URI의 경우 NULL을 지정할 수 있습니다.
|
location_uri |
객체 저장소 버킷 또는 폴더 URI를 지정합니다. 이 매개변수는 필수입니다. URI의 형식은 클라우드 객체 스토리지 서비스에 따라 다릅니다. 자세한 내용은 DBMS_CLOUD Package File Cloud Object Storage URI Formats를 참조하십시오. |
index_name |
location_uri 위치에 있는 파일에 빌드 중인 인덱스의 이름을 지정합니다.
이 매개변수는 필수입니다. |
|
추가 구성 옵션을 지정합니다. 옵션은 JSON 문자열로 지정됩니다. 지원되는 형식 옵션은 다음과 같습니다.
다음 방법을 사용하여 중지 단어를 지정할 수 있습니다.
|
예
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
(
credential_name => 'DEFAULT_CREDENTIAL',
location_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
index_name => 'EMP',
format => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/
CREATE_HYBRID_PART_TABLE 프로시저
이 프로시저는 하이브리드 분할 테이블을 생성합니다. 이를 통해 클라우드의 데이터베이스 객체 및 파일을 사용하거나 디렉토리의 데이터베이스 객체 및 파일을 사용하여 Autonomous Database의 하이브리드 분할 데이터에 대한 질의를 실행할 수 있습니다.
구문
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
credential_name IN VARCHAR2,
partitioning_clause IN CLOB,
column_list IN CLOB,
field_list IN CLOB DEFAULT,
format IN CLOB DEFAULT);
매개변수
매개변수 | 설명 |
---|---|
|
외부 테이블의 이름입니다. |
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다. |
|
개별 분할 영역에 대한 위치 정보를 포함하여 전체 분할 절을 지정합니다. 디렉토리를 사용하기 위해 분할 절은 클라우드 소스 파일 URI의 파일 이름에 와일드카드와 정규 표현식을 사용할 수 있습니다. 정규 표현식은
정규 표현식 패턴은 URI의 파일 이름 또는 하위 폴더 경로에 대해서만 지원되며 패턴 일치는 예:
|
|
External Table에 대한 쉼표로 구분된 열 이름 및 데이터 유형 리스트입니다. |
|
소스 파일의 필드 및 해당 데이터 유형을 식별합니다. 기본값은 NULL이며, 이는 필드 및 해당 데이터 유형이 column_list 매개변수에 의해 결정됨을 의미합니다. 이 인수의 구문은 일반 Oracle External Table의 |
|
소스 파일의 형식을 설명하는 옵션입니다. 옵션 목록 및 값 지정 방법은 형식 매개변수를 참조하십시오. |
사용법 참고
-
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
절차는 Azure Blob Storage를 포함하여 지원되는 클라우드 객체 스토리지 서비스에서 외부 분할 파일을 지원합니다.인증서는 테이블 레벨 속성이므로 외부 파일은 동일한 객체 저장소에 있어야 합니다.
자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
-
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
절차는 로컬 파일 시스템 또는 네트워크 파일 시스템의 디렉토리에서 하이브리드 분할 파일을 지원합니다. -
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
로 만든 외부 분할 테이블에는 두 개의 보이지 않는 열file$path
및file$name
가 포함됩니다. 이러한 열은 레코드를 가져올 파일을 식별하는 데 도움이 됩니다.-
file$path
: 객체 이름의 시작 부분까지 파일 경로 텍스트를 지정합니다. -
file$name
: 버킷 이름 뒤에 오는 모든 텍스트를 포함하여 객체 이름을 지정합니다.
-
예
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name =>'HPT1',
credential_name =>'OBJ_STORE_CRED',
format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
column_list => 'col1 number, col2 number, col3 number',
partitioning_clause => 'partition by range (col1)
(partition p1 values less than (1000) external location
( ''&base_URL/file_11.txt'')
,
partition p2 values less than (2000) external location
( ''&base_URL/file_21.txt'')
,
partition p3 values less than (3000)
)'
);
END;
/
BEGIN
DBMS_CLOUD.CREATE_HYBRID_PART_TABLE
(
table_name => 'HPT1',
format => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
partitioning_clause => 'partition by range (B 2 ALANCE)
(partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
partition p3 values less than (3000))' );
END;
/
DELETE_ALL_OPERATIONS 프로시저
이 프로시저는 type
매개변수에 표시된 대로 스키마의 user_load_operations
테이블에 기록된 모든 데이터 로드 작업을 지우거나 지정된 유형의 모든 데이터 로드 작업을 지웁니다.
구문
DBMS_CLOUD.DELETE_ALL_OPERATIONS
(
type IN VARCHAR DEFAULT NULL);
매개변수
매개변수 | 설명 |
---|---|
|
삭제할 작업의 유형을 지정합니다. 유형 값은 |
사용법 노트
-
DBMS_CLOUD.DELETE_ALL_OPERATIONS
는 현재 실행 중인 작업("실행 중" 상태의 작업)을 삭제하지 않습니다.
DELETE_FILE 프로시저
이 절차에서는 Autonomous Database의 지정된 디렉토리에서 지정된 파일을 제거합니다.
구문
DBMS_CLOUD.DELETE_FILE
(
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
매개변수
매개변수 | 설명 |
---|---|
|
Autonomous Database 인스턴스의 디렉토리 이름입니다. |
|
제거할 파일의 이름입니다. |
force |
파일이 없으면 오류를 무시하고 보고하지 않습니다. 적합한 값은 |
주:
ADMIN 이외의 다른 사용자와 함께DBMS_CLOUD.DELETE_FILE
를 실행하려면 해당 사용자에게 파일이 포함된 디렉토리에 대한 쓰기 권한을 부여해야 합니다.예를 들어, 다음 명령을 ADMIN으로 실행하여 atpc_user
에 쓰기 권한을 부여합니다.GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
예
BEGIN
DBMS_CLOUD.DELETE_FILE
(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
DELETE_OBJECT 프로시저
이 프로시저는 객체 저장소에서 지정된 객체를 삭제합니다.
구문
DBMS_CLOUD.DELETE_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
매개변수
매개변수 | 설명 |
---|---|
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다. |
object_uri |
삭제할 객체의 객체 또는 파일 URI입니다. URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
force |
객체가 없는 경우 오류를 무시하고 보고하지 않습니다. 적합한 값은 |
예
BEGIN
DBMS_CLOUD.DELETE_OBJECT
(
credential_name => 'DEF_CRED_NAME',
object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
END;
/
DELETE_OPERATION 프로시저
이 프로시저는 스키마의 user_load_operations
또는 dba_load_operations
테이블에 기록된 지정된 작업 ID에 대한 데이터 로드 항목을 지웁니다.
구문
DBMS_CLOUD.DELETE_OPERATION
(
id IN NUMBER);
매개변수
매개변수 | 설명 |
---|---|
|
삭제할 로그 파일 항목과 연관된 작업 ID를 지정합니다. |
예
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION
(id);
DROP_EXTERNAL_TEXT_INDEX 프로시저
이 절차에서는 오브젝트 스토리지 파일의 텍스트 인덱스를 삭제합니다.
DROP_EXTERNAL_TEXT_INDEX
프로시저는 CREATE_EXTERNAL_TEXT_INDEX
프로시저로 생성된 지정된 인덱스를 삭제합니다.
구문
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name IN VARCHAR2,
);
매개변수
매개변수 | 설명 |
---|---|
index_name |
삭제하려는 인덱스의 이름을 지정합니다. 인덱스 이름은 인덱스 생성 시 제공된 이름과 일치해야 합니다. 이 매개변수는 필수입니다. |
예
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
EXPORT_DATA 프로시저
format
type
매개변수에 따라 프로시저는 CSV, JSON, Parquet 또는 XML 형식의 텍스트 파일로 파일을 클라우드 또는 디렉토리 위치로 익스포트합니다.
구문
DBMS_CLOUD.EXPORT_DATA
(
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB,
format IN CLOB,
query IN CLOB);
DBMS_CLOUD.EXPORT_DATA
(
credential_name IN VARCHAR2 DEFAULT NULL,
file_uri_list IN CLOB DEFAULT NULL,
format IN CLOB DEFAULT NULL,
query IN CLOB DEFAULT NULL,
operation_id OUT NOCOPY NUMBER);
매개변수
매개변수 | 설명 |
---|---|
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다. 인증서 매개변수가 포함되지 않은 경우 디렉토리에 대한 출력을 지정합니다. |
|
형식 파라미터의 값에 따라 인증서 파라미터를 포함하는지 여부에 따라 다음과 같은 다양한 형식이 있습니다.
URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 달라집니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
|
익스포트 형식 옵션을 제공하는 JSON 문자열입니다. 지원되는 옵션은 다음과 같습니다.
|
|
필요한 데이터만 내보내도록 SELECT warehouse_id, quantity FROM inventories
예: SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories) |
|
이 매개변수를 사용하여 익스포트 작업의 진행률 및 최종 상태를 |
사용법 관련 주:
-
필요한 경우 제공하는
query
매개변수 값은 조인 또는 하위 질의를 포함하는 질의와 같은 고급 질의일 수 있습니다. -
지정된 형식 매개변수에 따라
DBMS_CLOUD.EXPORT_DATA
는 클라우드 객체 저장소에서 지정된 질의의 결과를 출력하거나 CSV, JSON, Parquet 또는 XML 파일 형식의 디렉토리 위치에 출력합니다.CSV, JSON, Parquet 또는 XML 출력 파일에서
DBMS_CLOUD.EXPORT_DATA
를 사용하는 방법에 대한 자세한 내용은 DBMS_CLOUD.EXPORT_DATA를 사용하여 객체 저장소로 데이터 익스포트 및 DBMS_CLOUD.EXPORT_DATA를 사용하여 디렉토리로 데이터 익스포트를 참조하십시오. -
CSV, JSON 또는 XML 출력의 경우, 생성된 파일에 10MB의 데이터가 포함된 경우 기본적으로 새 출력 파일이 생성됩니다. 그러나 결과 데이터가 10MB 미만인 경우 데이터베이스 서비스 및 Autonomous Database 인스턴스에 대한 ECPU(OCPU를 사용하는 경우 OCPU) 수에 따라 여러 출력 파일이 있을 수 있습니다.
자세한 내용은 텍스트 출력에 대한 파일 이름 지정(CSV, JSON, Parquet 또는 XML)을 참조하십시오.
기본 출력 파일 조각 크기는 CSV, JSON 또는 XML의 경우 10MB입니다.
format
매개변수maxfilesize
옵션을 사용하여 이 값을 변경할 수 있습니다. 자세한 내용은 DBMS_CLOUD Package Format Options for EXPORT_DATA을 참조하십시오. -
Parquet 출력의 경우 생성된 각 파일이 128MB 미만이며 여러 출력 파일이 생성될 수 있습니다. 그러나 결과 데이터가 128MB 미만인 경우 Autonomous Database 인스턴스에 대한 데이터베이스 서비스 및 ECPU 수(OCPU(데이터베이스에서 OCPU를 사용하는 경우 OCPU)에 따라 여러 출력 파일이 있을 수 있습니다.
자세한 내용은 텍스트 출력에 대한 파일 이름 지정(CSV, JSON, Parquet 또는 XML)을 참조하십시오.
- Parquet 출력 형식은 전용 Exadata 인프라에서 Autonomous Database에 대한 상위 및 중간 데이터베이스 서비스에서만 사용할 수 있습니다.
출력이 디렉토리인 DBMS_CLOUD.EXPORT_DATA
에 대한 사용 정보
-
제공된 디렉토리가 존재해야 하며
ADMIN
사용자로 로그인하거나 디렉토리에 대한WRITE
액세스 권한이 있어야 합니다. -
DBMS_CLOUD.EXPORT_DATA
는 디렉토리를 만들지 않습니다. -
이 프로시저는 파일을 겹쳐쓰지 않습니다. 예를 들어,
file_uri_list
의 덤프 파일이 있는 경우DBMS_CLOUD.EXPORT_DATA
는 다음과 같은 오류를 보고합니다.ORA-31641: unable to create dump file "/u02/exports/123.dmp" ORA-27038: created file already exists
예
다음 예에서는 값이 json
인 type
매개변수 형식을 사용하는 DBMS_CLOUD.EXPORT_DATA
를 보여줍니다.
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
);
END;
/
다음 예에서는 값이 xml
인 type
매개변수 형식을 사용하는 DBMS_CLOUD.EXPORT_DATA
를 보여줍니다.
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
);
END;
/
다음 예에서는 값이 csv
인 type
매개변수 형식을 사용하는 DBMS_CLOUD.EXPORT_DATA
를 보여줍니다.
BEGIN
DBMS_CLOUD.EXPORT_DATA
(
credential_name => 'OBJ_STORE_CRED',
file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv',
query => 'SELECT * FROM DEPT',
format => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true ));
);
END;
/
GET_OBJECT 프로시저 및 함수
이 프로시저는 오버로드됩니다. 절차 양식은 클라우드 오브젝트 스토리지에서 오브젝트를 읽고 Autonomous Database에 복사합니다. 함수 폼은 Cloud Object Storage에서 객체를 읽고 BLOB
을 Autonomous Database로 반환합니다.
구문
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2 DEFAULT NULL,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.GET_OBJECT
(
credential_name IN VARCHAR2 DEFAULT NULL,
object_uri IN VARCHAR2,
startoffset IN NUMBER DEFAULT 0,
endoffset IN NUMBER DEFAULT 0,
compression IN VARCHAR2 DEFAULT NULL)
RETURN BLOB;
매개변수
매개변수 | 설명 |
---|---|
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다. |
|
객체 또는 파일 URI입니다. URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
|
데이터베이스의 디렉토리 이름 발 1 |
|
생성할 파일의 이름을 지정합니다. 파일 이름을 지정하지 않을 경우 파일 이름은 |
startoffset |
프로시저가 읽기를 시작하는 오프셋(바이트)입니다. |
endoffset |
프로시저가 읽기를 중지할 때까지의 오프셋(바이트)입니다. |
|
객체를 저장하는 데 사용되는 압축을 지정합니다. |
Footnote 1
주:
ADMIN이 아닌 다른 사용자와 함께 DBMS_CLOUD.GET_OBJECT
을 실행하려면 디렉토리에 대한 WRITE
권한을 해당 사용자에게 부여해야 합니다. 예를 들어, ADMIN으로 다음 명령을 실행하여 atpc_user
에 쓰기 권한을 부여합니다.
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
반환 값
함수 폼은 객체 저장소에서 읽으며 DBMS_CLOUD.GET_OBJECT
는 BLOB
를 반환합니다.
예
BEGIN
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
directory_name => 'DATA_PUMP_DIR');
END;
/
객체 저장소의 파일에서 문자 데이터를 읽으려면 다음과 같이 하십시오.
SELECT to_clob(
DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;
데이터베이스의 BLOB
에 있는 객체 저장소에 저장된 이미지를 추가하려면 다음과 같이 하십시오.
DECLARE
l_blob BLOB := NULL;
BEGIN
l_blob := DBMS_CLOUD.GET_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/
이 예에서는 namespace-string
가 Oracle Cloud Infrastructure 오브젝트 스토리지 네임스페이스이고 bucketname
가 버킷 이름입니다. 자세한 내용은 Object Storage 네임스페이스 이해를 참조하십시오.
LIST_FILES 함수
이 함수는 지정된 디렉토리의 파일을 나열합니다. 결과에는 파일 이름 및 파일에 대한 추가 메타 데이터(예: 바이트 단위의 파일 크기, 생성 시간 기록 및 마지막 수정 시간 기록)가 포함됩니다.
구문
DBMS_CLOUD.LIST_FILES
(
directory_name IN VARCHAR2)
RETURN TABLE;
매개변수
매개변수 | 설명 |
---|---|
|
데이터베이스의 디렉토리 이름 |
사용법 참고
-
ADMIN 이외의 다른 사용자와 함께
DBMS_CLOUD.LIST_FILES
를 실행하려면 디렉토리에 대한 읽기 권한을 해당 사용자에게 부여해야 합니다.예를 들어, 다음 명령을 ADMIN으로 실행하여atpc_user
에 읽기 권한을 부여합니다.GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
-
반환 유형이
DBMS_CLOUD_TYPES.list_object_ret_t
인 파이프 라인된 테이블 함수입니다. -
DBMS_CLOUD.LIST_FILES
는 체크섬 값을 가져오지 않고 이 필드에 대해NULL
를 반환합니다.
예
각 파일에 대한 행을 반환하는 파이프 라인 함수입니다. 예를 들어, 다음 query를 사용하여 이 함수를 사용합니다.
SELECT * FROM DBMS_CLOUD.LIST_FILES
('DATA_PUMP_DIR');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- ---------- --------------------- ---------------------
cwallet.sso 2965 2018-12-12T18:10:47Z 2019-11-23T06:36:54Z
LIST_OBJECTS 함수
이 함수는 객체 저장소의 지정된 위치에 있는 객체를 나열합니다. 결과에는 객체 이름과 객체에 대한 추가 메타 데이터(예: 크기, 체크섬, 생성 시간 기록 및 마지막 수정 시간 기록)가 포함됩니다.
구문
DBMS_CLOUD.LIST_OBJECTS
(
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
매개변수
매개변수 | 설명 |
---|---|
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다. |
location_uri |
객체 또는 파일 URI입니다. URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
사용법 참고
-
객체 저장소의 기능에 따라
DBMS_CLOUD.LIST_OBJECTS
는 특정 속성에 대한 값을 반환하지 않으며 이 경우 필드의 반환 값은NULL
입니다.지원되는 모든 객체 저장소는
OBJECT_NAME
,BYTES
및CHECKSUM
필드에 대한 값을 반환합니다.다음 표에서는 객체 저장소별
CREATED
및LAST_MODIFIED
필드에 대한 지원을 보여줍니다.객체 저장소 CREATED
LAST_MODIFIED
Oracle Cloud Infrastructure 네이티브 반환 시간 기록 반환 시간 기록 Oracle Cloud Infrastructure Swift NULL
을 반환합니다.반환 시간 기록 Amazon S3 NULL
을 반환합니다.반환 시간 기록 Amazon S3 호환 NULL
을 반환합니다.반환 시간 기록 Azure 반환 시간 기록 반환 시간 기록 -
체크섬 값은 MD5 체크섬입니다. 객체 내용에 대해 계산되는 32자의 16진수입니다.
-
반환 유형이
DBMS_CLOUD_TYPES.list_object_ret_t
인 파이프 라인된 테이블 함수입니다.
예
각 객체에 대해 행을 반환하는 파이프 라인 함수입니다. 예를 들어, 다음 query를 사용하여 이 함수를 사용합니다.
SELECT * FROM DBMS_CLOUD.LIST_OBJECTS
('OBJ_STORE_CRED',
'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso 2965 2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z
이 예에서는 namespace-string
가 Oracle Cloud Infrastructure 오브젝트 스토리지 네임스페이스이고 bucketname
가 버킷 이름입니다. 자세한 내용은 Object Storage 네임스페이스 이해를 참조하십시오.
MOVE_OBJECT 프로시저
이 절차에서는 오브젝트를 클라우드 오브젝트 스토리지 버킷 또는 폴더 간에 이동합니다.
소스 및 대상 버킷 또는 폴더는 동일하거나 다른 클라우드 객체 저장소 제공자에 있을 수 있습니다.
소스와 대상이 고유 객체 저장소에 있거나 동일한 클라우드 제공자의 계정이 다른 경우 소스 및 대상 위치에 대해 별도의 인증서 이름을 지정할 수 있습니다.
소스 인증서 이름은 기본적으로 대상 인증서 이름이 제공되지 않은 경우 대상 위치에서도 사용됩니다.
구문
DBMS_CLOUD.MOVE_OBJECT
(
source_credential_name IN VARCHAR2 DEFAULT NULL,
source_object_uri IN VARCHAR2,
target_object_uri IN VARCHAR2,
target_credential_name IN VARCHAR2 DEFAULT NULL
);
매개변수
매개변수 | 설명 |
---|---|
|
소스 클라우드 객체 스토리지에 액세스할 인증서의 이름입니다.
|
|
소스 오브젝트 스토리지 버킷 또는 폴더 위치를 가리키는 URI를 지정합니다. 이 매개변수는 필수입니다. URI의 형식은 클라우드 객체 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
|
파일을 이동해야 하는 대상 오브젝트 스토리지 버킷 또는 폴더에 대한 URI를 지정합니다. 이 매개변수는 필수입니다. URI의 형식은 클라우드 객체 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
|
대상 클라우드 객체 스토리지 위치에 액세스할 인증서의 이름입니다.
|
예
BEGIN
DBMS_CLOUD.MOVE_OBJECT
(
source_credential_name => 'OCI_CRED',
source_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
target_object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/
PUT_OBJECT 프로시저
이 프로시저는 오버로드됩니다. 절차에서는 Autonomous Database의 파일을 클라우드 객체 스토리지로 복사합니다. 다른 양식에서 이 절차는 Autonomous Database의 BLOB
를 클라우드 객체 스토리지로 복사합니다.
구문
DBMS_CLOUD.PUT_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
directory_name IN VARCHAR2,
file_name IN VARCHAR2
compression IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.PUT_OBJECT
(
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
contents IN BLOB
compression IN VARCHAR2 DEFAULT NULL);
매개변수
매개변수 | 설명 |
---|---|
|
클라우드 객체 스토리지에 액세스할 인증서의 이름입니다. |
|
객체 또는 파일 URI입니다. URI의 형식은 사용 중인 클라우드 오브젝트 스토리지 서비스에 따라 다릅니다. 자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오. |
|
Autonomous Database에 있는 디렉토리의 이름입니다. 발 1 |
|
Autonomous Database에서 클라우드 객체 스토리지로 복사할 |
|
지정된 디렉토리에 있는 파일의 이름입니다. |
|
객체를 저장하는 데 사용되는 압축을 지정합니다. 기본값: |
Footnote 1
주:
ADMIN이 아닌 다른 사용자와 함께 DBMS_CLOUD.PUT_OBJECT
을 실행하려면 디렉토리에 대한 읽기 권한을 해당 사용자에게 부여해야 합니다. 예를 들어, 다음 명령을 ADMIN으로 실행하여 atpc_user
에 읽기 권한을 부여합니다.
GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
예
데이터베이스 내 처리 후 BLOB
데이터를 처리한 다음 데이터를 객체 저장소의 파일에 직접 저장하려면 다음을 수행합니다.
DECLARE
my_blob_data BLOB;
BEGIN
/* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT
(
credential_name => 'OBJ_STORE_CRED',
object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
contents => my_blob_data));
END;
/
사용법 참고
클라우드 오브젝트 스토리지에 따라 전송하는 오브젝트의 크기가 다음과 같이 제한됩니다.
클라우드 오브젝트 스토리지 서비스 | 객체 전송 크기 제한 |
---|---|
Oracle Cloud Infrastructure Object Storage |
50 GB |
Amazon S3 |
5 GB |
Azure Blob Storage |
256 MB |
Amazon S3 호환 |
객체 저장소 제공자에 의해 설정됩니다. 자세한 내용은 공급자의 설명서를 참조하십시오. |
Oracle Cloud Infrastructure 객체 저장소에서는 인증서를 제공하지 않고 퍼블릭 버킷에 파일을 쓸 수 없습니다. Oracle Cloud Infrastructure에서는 사용자가 퍼블릭 버킷에서 객체를 다운로드할 수 있습니다. 따라서 PUT_OBJECT
를 사용하여 Oracle Cloud Infrastructure 퍼블릭 버킷에 객체를 저장하려면 적합한 인증서가 포함된 인증서 이름을 제공해야 합니다.
자세한 내용은 클라우드 오브젝트 스토리지 URI 형식을 참조하십시오.
SYNC_EXTERNAL_PART_TABLE 프로시저
이 절차에서는 클라우드의 파일에서 외부 분할 테이블을 간단히 업데이트할 수 있습니다. 새 분할 영역이 추가되거나 외부 분할된 테이블에 대한 객체 저장소 소스에서 분할 영역이 제거될 때마다 이 프로시저를 실행합니다.
구문
DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
update_columns IN BOOLEAN DEFAULT);
매개변수
매개변수 | 설명 |
---|---|
|
대상 테이블의 이름입니다. |
|
대상 테이블이 상주하는 스키마의 이름입니다. 기본값은 대상 테이블이 프로시저를 실행하는 유저와 동일한 스키마에 있음을 의미하는 NULL입니다. |
|
새 파일로 인해 스키마가 변경될 수 있습니다. 지원되는 업데이트에는 새 열, 삭제된 열이 포함됩니다. 기존 열에 대한 업데이트(예: 데이터 유형을 변경하면 오류가 발생함) 기본값: False |
VALIDATE_EXTERNAL_PART_TABLE 프로시저
이 프로시저는 외부 분할 테이블에 대한 소스 파일을 검증하고, 로그 정보를 생성하고, 외부 테이블에 대해 지정된 형식 옵션과 일치하지 않는 행을 Autonomous Database의 badfile 테이블에 저장합니다. 오버로드된 폼에서는 operation_id
매개변수를 사용할 수 있습니다.
구문
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
매개변수
매개변수 | 설명 |
---|---|
|
외부 테이블의 이름입니다. |
|
이 매개변수를 사용하여 로드 작업의 진행률 및 최종 상태를 |
|
정의된 경우 특정 분할 영역만 검증됩니다. 지정되지 않은 경우 |
|
정의된 경우 특정 서브 분할 영역만 검증됩니다. 지정되지 않은 경우 |
|
외부 테이블이 상주하는 스키마의 이름입니다. 기본값은 NULL이며 External Table은 프로시저를 실행하는 유저와 동일한 스키마에 있으므로 |
|
스캔할 행 수입니다. 기본값은 NULL입니다. 즉, 소스 파일의 모든 행이 스캔됩니다. |
|
내부 전용입니다. 이 파라미터는 사용하지 마십시오. |
|
행이 거부될 때 검증이 정지되어야 하는지 여부를 결정합니다. 기본값은 |
VALIDATE_EXTERNAL_TABLE 프로시저
이 프로시저는 외부 테이블에 대한 소스 파일을 검증하고, 로그 정보를 생성하고, 외부 테이블에 대해 지정된 형식 옵션과 일치하지 않는 행을 Autonomous Database의 badfile 테이블에 저장합니다. 오버로드된 폼에서는 operation_id
매개변수를 사용할 수 있습니다.
구문
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NOCOPY NUMBER,
schema_name IN VARCHAR2 DEFAULT NULL,
rowcount IN NUMBER DEFAULT 0,
stop_on_error IN BOOLEAN DEFAULT TRUE);
매개변수
매개변수 | 설명 |
---|---|
|
외부 테이블의 이름입니다. |
|
이 매개변수를 사용하여 로드 작업의 진행률 및 최종 상태를 |
|
외부 테이블이 상주하는 스키마의 이름입니다. 기본값은 NULL이며 External Table은 프로시저를 실행하는 유저와 동일한 스키마에 있으므로 |
|
스캔할 행 수입니다. 기본값은 NULL입니다. 즉, 소스 파일의 모든 행이 스캔됩니다. |
|
행이 거부될 때 검증이 정지되어야 하는지 여부를 결정합니다. 기본값은 외부 테이블이 Avro, ORC 또는 Parquet 파일을 참조하는 경우 첫번째 거부된 행에서 검증이 중지됩니다. 외부 테이블이 |
사용법 참고
-
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE
는 분할된 외부 테이블 및 하이브리드 분할된 테이블에서 모두 작동합니다. 이렇게 하면rowcount
에 도달하거나stop_on_error
가 적용될 때까지 모든 외부 분할 영역에서 데이터를 읽을 수 있습니다. 어떤 분할 영역 또는 분할 영역의 일부를 어떤 순서로 읽는지 제어할 수 없습니다.
VALIDATE_HYBRID_PART_TABLE 프로시저
이 절차에서는 하이브리드 분할 테이블에 대한 소스 파일을 검증하고, 로그 정보를 생성하고, 하이브리드 테이블에 대해 지정된 형식 옵션과 일치하지 않는 행을 Autonomous Database의 badfile 테이블에 저장합니다. 오버로드된 폼에서는 operation_id
매개변수를 사용할 수 있습니다.
구문
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE
(
table_name IN VARCHAR2,
operation_id OUT NUMBER,
partition_name IN CLOB DEFAULT,
subpartition_name IN CLOB DEFAULT,
schema_name IN VARCHAR2 DEFAULT,
rowcount IN NUMBER DEFAULT,
partition_key_validation IN BOOLEAN DEFAULT,
stop_on_error IN BOOLEAN DEFAULT);
매개변수
매개변수 | 설명 |
---|---|
|
외부 테이블의 이름입니다. |
|
이 매개변수를 사용하여 로드 작업의 진행률 및 최종 상태를 |
|
정의된 경우 특정 분할 영역만 검증됩니다. 지정되지 않은 경우 |
|
정의된 경우 특정 서브 분할 영역만 검증됩니다. 지정되지 않은 경우 |
|
외부 테이블이 상주하는 스키마의 이름입니다. 기본값은 NULL이며 External Table은 프로시저를 실행하는 유저와 동일한 스키마에 있으므로 |
|
스캔할 행 수입니다. 기본값은 NULL입니다. 즉, 소스 파일의 모든 행이 스캔됩니다. |
|
내부 전용입니다. 이 파라미터는 사용하지 마십시오. |
|
행이 거부될 때 검증이 정지되어야 하는지 여부를 결정합니다. 기본값은 |