DBMS_CLOUD per oggetti e file
In questa sezione vengono descritti i sottoprogrammi DBMS_CLOUD utilizzati per l'utilizzo di oggetti e file.
Prerequisiti
Come sviluppatore, puoi utilizzare le procedure DBMS_CLOUD con i database AI autonomi distribuiti su Oracle Public Cloud, Multicloud o Exadata Cloud@Customer.
A seconda della scelta di distribuzione, è necessario soddisfare i seguenti prerequisiti per utilizzare le procedure DBMS_CLOUD con i provider di servizi Amazon S3, Azure Blob Storage e Google Cloud Storage.
Una connettività in uscita deve essere stata configurata utilizzando un gateway NAT dall'amministratore della flotta, come descritto di seguito.
-
Creare un gateway NAT nella rete cloud virtuale (VCN) in cui risiedono le risorse di Autonomous AI Database seguendo le istruzioni in Crea un gateway NAT nella documentazione di Oracle Cloud Infrastructure.
-
Dopo aver creato il gateway NAT, aggiungere una regola di instradamento e una regola di sicurezza in uscita a ogni subnet (nella VCN) in cui risiedono le risorse di Autonomous AI Database in modo che queste risorse possano utilizzare il gateway per ottenere una chiave pubblica dall'istanza di Azure AD:
-
Andare alla pagina Dettagli subnet per la subnet.
-
Nella scheda Informazioni subnet fare clic sul nome della tabella di instradamento della subnet per visualizzare la relativa pagina Dettagli tabella di instradamento.
-
Nella tabella delle regole di instradamento esistenti, verificare se esiste già una regola con le seguenti caratteristiche:
-
Destinazione: 0.0.0.0/0
-
Tipo di destinazione: gateway NAT
-
Destinazione: il nome del gateway NAT appena creato nella VCN
Se tale regola non esiste, fare clic su Aggiungi regole di instradamento e aggiungere una regola di instradamento con queste caratteristiche.
-
-
Tornare alla pagina Dettagli subnet per la subnet.
-
Nella tabella Elenchi sicurezza della subnet fare clic sul nome della lista di sicurezza della subnet per visualizzare la relativa pagina Dettagli elenco di sicurezza.
-
Nel menu laterale, in Risorse, fare clic su Regole di uscita.
-
Nella tabella delle regole di uscita esistenti, verificare se esiste già una regola con le seguenti caratteristiche:
-
Tipo di destinazione:CIDR
-
Destinazione:0.0.0.0/0
-
Protocollo IP:TCP
-
Intervallo porte di origine:443
-
Intervallo porte di destinazione:Tutti
Se una regola di questo tipo non esiste, fare clic su Aggiungi regole di uscita e aggiungere una regola di uscita con queste caratteristiche.
-
-
Le impostazioni del proxy HTTP nell'ambiente devono consentire al database di accedere al provider di servizi cloud.
Queste impostazioni vengono definite dall'amministratore della flotta durante la creazione dell'infrastruttura Exadata Cloud@Customer, come descritto in Uso della console per eseguire il provisioning di Exadata Database Service su Cloud@Customer.
Nota: la configurazione di rete, incluso il proxy HTTP, può essere modificata solo fino a quando l'infrastruttura Exadata non è in stato Richiede attivazione. Una volta attivato, non è possibile modificare tali impostazioni.
L'impostazione di un proxy HTTP per un'infrastruttura Exadata già di cui è stato eseguito il provisioning richiede una richiesta di servizio (SR) in My Oracle Support. Per i dettagli, vedere Crea una richiesta di servizio in My Oracle Support.
Sottoprogrammi DBMS_CLOUD per oggetti e file
Sottoprogrammi per la gestione di oggetti e file all'interno del package DBMS_CLOUD.
| Sottoprogramma | Descrizione |
|---|---|
| Procedura COPY_COLLECTION | Questa procedura carica i dati nella raccolta SODA esistente dallo storage degli oggetti cloud o dai file in una directory. |
| Procedura COPY_DATA | Questa procedura carica i dati nelle tabelle di Autonomous AI Database esistenti dallo storage degli oggetti cloud o dai file in una directory. |
| Procedura COPY_DATA per i file Avro, ORC o Parquet | Questa procedura con il parametro Analogamente ai file di testo, i dati vengono copiati dal file ORC, Parquet o Avro di origine nella tabella interna preesistente. |
| Procedura COPY_OBJECT | Questa procedura copia i file da un bucket di storage degli oggetti cloud a un altro. |
| Procedura CREATE_EXTERNAL_TABLE | Questa procedura crea una tabella esterna sui file nel cloud o sui file in una directory. Ciò consente di eseguire query su dati esterni da Autonomous AI Database. |
| Procedura CREATE_EXTERNAL_TABLE per i file Avro, ORC o Parquet | Questa procedura con il parametro Ciò consente di eseguire query su dati esterni da Autonomous AI Database. |
| Procedura CREATE_EXTERNAL_TEXT_INDEX | Questa procedura crea un indice di testo nei file dell'area di memorizzazione degli oggetti. |
| Procedura CREATE_HYBRID_PART_TABLE | Questa procedura crea una tabella con partizionamento ibrido. Ciò consente di eseguire query su dati partizionati ibridi da Autonomous AI Database. |
| Procedura DELETE_ALL_OPERATIONS | Questa procedura cancella tutte le operazioni di caricamento dati registrate nella tabella user_load_operations nello schema oppure cancella tutte le operazioni di caricamento dati del tipo specificato, come indicato con il parametro type. |
| Procedura DELETE_FILE | Questa procedura rimuove il file specificato dalla directory specificata in Autonomous AI Database |
| Procedura DELETE_OBJECT | Questa procedura elimina l'oggetto specificato nell'area di memorizzazione degli oggetti. |
| Procedura DELETE_OPERATION | Questa procedura accetta un valore operation_id come input ed elimina i log associati al valore operation_id specificato. |
| Procedura DROP_EXTERNAL_TEXT_INDEX | Questa procedura elimina l'indice di testo nei file dell'area di memorizzazione degli oggetti. |
| Procedura EXPORT_DATA | Questa procedura esporta i dati da Autonomous AI Database in file nel cloud in base al risultato di una query. Il form sovraccarico consente di utilizzare il parametro operation_id. A seconda dell'opzione type del parametro format specificata, la procedura esporta le righe nell'area di memorizzazione degli oggetti cloud come testo con opzioni CSV, JSON, Parquet o XML |
| Procedura e funzione GET_OBJECT | Questa procedura è sovraccaricata. Il form di procedura legge un oggetto dallo storage degli oggetti cloud e lo copia in Autonomous AI Database. Il form funzione legge un oggetto da Cloud Object Storage e restituisce un valore BLOB ad Autonomous AI Database. |
| Funzione LIST_FILES | Questa funzione elenca i file nella directory specificata. I risultati includono i nomi dei file e i metadati aggiuntivi relativi ai file, ad esempio la dimensione del file in byte, l'indicatore orario di creazione e l'indicatore orario dell'ultima modifica. |
| Funzione LIST_OBJECTS | Questa funzione elenca gli oggetti nella posizione specificata nell'area di memorizzazione degli oggetti. I risultati includono i nomi degli oggetti e i metadati aggiuntivi relativi agli oggetti, ad esempio dimensione, checksum, indicatore orario di creazione e indicatore orario dell'ultima modifica. |
| Procedura MOVE_OBJECT | Questa procedura sposta un oggetto da un bucket di storage degli oggetti cloud a un altro. |
| Procedura PUT_OBJECT | Questa procedura è sovraccaricata. In un modulo, la procedura copia un file da Autonomous AI Database allo storage degli oggetti cloud. In un altro formato, la procedura copia un BLOB da Autonomous AI Database allo storage degli oggetti cloud. |
| Procedura SYNC_EXTERNAL_PART_TABLE | Questa procedura semplifica l'aggiornamento di una tabella partizionata esterna dai file nel cloud. Eseguire questa procedura ogni volta che vengono aggiunte nuove partizioni o quando le partizioni vengono rimosse dall'origine dell'area di memorizzazione degli oggetti per la tabella partizionata esterna. |
| Procedura VALIDATE_EXTERNAL_TABLE | Questa procedura convalida i file di origine per una tabella esterna, genera informazioni di log e memorizza le righe che non corrispondono alle opzioni di formato specificate per la tabella esterna in una tabella di file non valido in Autonomous AI Database. |
| Procedura VALIDATE_EXTERNAL_PART_TABLE | Questa procedura convalida i file di origine per una tabella partizionata esterna, genera informazioni di log e memorizza le righe che non corrispondono alle opzioni di formato specificate per la tabella esterna in una tabella di file non valido in Autonomous AI Database. |
| Procedura VALIDATE_HYBRID_PART_TABLE | Questa procedura convalida i file di origine per una tabella con partizionamento ibrido, genera informazioni di log e memorizza le righe che non corrispondono alle opzioni di formato specificate per la tabella ibrida in una tabella con file non valido in Autonomous AI Database. |
Procedura COPY_COLLECTION
Questa procedura carica i dati in una raccolta SODA dallo storage degli oggetti cloud o da una directory. Se la raccolta SODA specificata non esiste, la procedura la crea. Il form sovraccarico consente di utilizzare il parametro operation_id.
Sintassi
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
);
Parametri
| Parametro | Descrizione |
|---|---|
collection_name |
Il nome della raccolta SODA in cui verranno caricati i dati. Se esiste già una raccolta con questo nome, i dati specificati verranno caricati, altrimenti verrà creata una nuova raccolta. |
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. Questo parametro non viene utilizzato quando si specifica una directory con |
file_uri_list |
Questo parametro specifica una lista delimitata da virgole di URI dei file di origine oppure una o più directory e file di origine. URI file di origine cloud È possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi file negli URI dei file di origine cloud. Le espressioni regolari possono essere utilizzate solo se il parametro I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro I pattern di espressione regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza dei pattern è identica a quella eseguita dalla funzione Ad esempio: Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. Per ulteriori informazioni sulla condizione Directory È possibile specificare una directory e uno o più nomi di file oppure utilizzare un elenco separato da virgole di directory e nomi di file. Il formato per specificare una directory è: È possibile utilizzare i caratteri jolly per specificare i nomi dei file in una directory. Il carattere "*" può essere utilizzato come caratteri jolly per più caratteri, il carattere "?" può essere utilizzato come caratteri jolly per un singolo carattere. Ad esempio: Per specificare più directory, utilizzare un elenco separato da virgole: ad esempio: Usare le virgolette doppie per specificare un nome di directory con distinzione tra maiuscole e minuscole. Ad esempio: Per includere una virgoletta, utilizzare due virgolette. Ad esempio: |
format |
Le opzioni che descrivono il formato dei file di origine. Queste opzioni sono specificate come stringa JSON. I formati supportati sono: Oltre AI formati menzionati per i dati JSON, Autonomous AI Database supporta anche altri formati. Per la lista degli argomenti di formato supportati da Autonomous AI Database, vedere Parametro formato. |
operation_id |
Utilizzare questo parametro per tenere traccia dell'avanzamento e dello stato finale dell'operazione di caricamento come ID corrispondente nella vista USER_LOAD_OPERATIONS. |
Esempio
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;
/
Procedura COPY_DATA
Questa procedura carica i dati nelle tabelle di Autonomous AI Database esistenti dai file nel cloud o dai file in una directory. Il form sovraccarico consente di utilizzare il parametro operation_id.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella di destinazione nel database. La tabella di destinazione deve essere creata prima di eseguire COPY_DATA. |
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. Questo parametro non viene utilizzato quando si specifica una directory con |
file_uri_list |
È possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi file negli URI dei file di origine cloud. URI file di origine cloud Questo parametro specifica una lista delimitata da virgole di URI dei file di origine oppure una o più directory e file di origine. Le espressioni regolari possono essere utilizzate solo se il parametro I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro I pattern di espressione regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza dei pattern è identica a quella eseguita dalla funzione Ad esempio: Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. Per ulteriori informazioni sulla condizione Directory È possibile specificare una directory e uno o più nomi di file oppure utilizzare un elenco separato da virgole di directory e nomi di file. Il formato per specificare una directory è: È possibile utilizzare i caratteri jolly per specificare i nomi dei file in una directory. Il carattere "*" può essere utilizzato come caratteri jolly per più caratteri, il carattere "?" può essere utilizzato come caratteri jolly per un singolo carattere. Ad esempio: Per specificare più directory, utilizzare un elenco separato da virgole: ad esempio: Usare le virgolette doppie per specificare un nome di directory con distinzione tra maiuscole e minuscole. Ad esempio: Per includere le virgolette, utilizzare due virgolette. Ad esempio: |
schema_name |
Nome dello schema in cui risiede la tabella di destinazione. Il valore predefinito è NULL, ovvero la tabella di destinazione si trova nello stesso schema dell'utente che esegue la procedura. |
field_list |
Identifica i campi nei file di origine e i relativi tipi di dati. Il valore predefinito è NULL, ovvero i campi e i relativi tipi di dati sono determinati dal parametro column_list. La sintassi di questo argomento è la stessa della clausola Se il valore dell'opzione Per un esempio di utilizzo di |
format |
Opzioni che descrivono il formato dei file di origine, log e non validi. Per l'elenco delle opzioni e le modalità di specifica dei valori, vedere Parametro formato. Per le opzioni dei formati di file Avro, ORC o Parquet, vedere DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet. |
operation_id |
Utilizzare questo parametro per tenere traccia dell'avanzamento e dello stato finale dell'operazione di caricamento come ID corrispondente nella vista USER_LOAD_OPERATIONS. |
Nota per l'uso
Il delimitatore di record predefinito è detected newline. Con detected newline, DBMS_CLOUD tenta di trovare automaticamente il carattere di nuova riga corretto da utilizzare come delimitatore di record. DBMS_CLOUD cerca prima il carattere \r\n della nuova riga di Windows. Se trova il carattere di nuova riga di Windows, viene utilizzato come delimitatore di record per tutti i file della procedura. Se non viene trovato un carattere di nuova riga di Windows, DBMS_CLOUD cerca il carattere di nuova riga UNIX/Linux \n e se ne trova uno utilizza \n come delimitatore di record per tutti i file della procedura. Se i file di origine utilizzano una combinazione di delimitatori di record diversi, è possibile che si verifichi un errore, ad esempio "KUP-04020: found record longer than buffer size supported". In questo caso, è necessario modificare i file di origine per utilizzare lo stesso delimitatore di record oppure specificare solo i file di origine che utilizzano lo stesso delimitatore di record.
Per informazioni sull'opzione di formato recorddelmiter, vedere Parametro formato.
Esempi
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;
/
Procedura COPY_DATA per i file Avro, ORC o Parquet
Questa procedura con il parametro format type impostato sul valore avro, orc o parquet carica i dati nelle tabelle di Autonomous AI Database esistenti dai file Avro, ORC o Parquet nel cloud o dai file in una directory.
Analogamente ai file di testo, i dati vengono copiati dal file Avro, ORC o Parquet di origine nella tabella interna preesistente.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella di destinazione nel database. La tabella di destinazione deve essere creata prima di eseguire COPY_DATA. |
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. Questo parametro non viene utilizzato quando si specifica una directory con |
file_uri_list |
Questo parametro specifica una lista delimitata da virgole di URI dei file di origine oppure una o più directory e file di origine. URI file di origine cloud È possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi file negli URI dei file di origine cloud. Le espressioni regolari possono essere utilizzate solo se il parametro I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro I pattern di espressione regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza dei pattern è identica a quella eseguita dalla funzione Ad esempio: Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. Per ulteriori informazioni sulla condizione Directory È possibile specificare una directory e uno o più nomi di file oppure utilizzare un elenco separato da virgole di directory e nomi di file. Il formato per specificare una directory è: È possibile utilizzare i caratteri jolly per specificare i nomi dei file in una directory. Il carattere "*" può essere utilizzato come caratteri jolly per più caratteri, il carattere "?" può essere utilizzato come caratteri jolly per un singolo carattere. Ad esempio: Per specificare più directory, utilizzare un elenco separato da virgole: ad esempio: Usare le virgolette doppie per specificare un nome di directory con distinzione tra maiuscole e minuscole. Ad esempio: Per includere una virgoletta, utilizzare due virgolette. Ad esempio: |
schema_name |
Nome dello schema in cui risiede la tabella di destinazione. Il valore predefinito è NULL, ovvero la tabella di destinazione si trova nello stesso schema dell'utente che esegue la procedura. |
field_list |
Ignorato per i file Avro, ORC o Parquet. I campi nell'origine corrispondono alle colonne della tabella esterna in base al nome. I tipi di dati di origine vengono convertiti nel tipo di dati della colonna della tabella esterna. Per i file ORC, vedere DBMS_CLOUD Package ORC to Oracle Data Type Mapping. Per i file Parquet, vedere DBMS_CLOUD Package Parquet to Oracle Data Type Mapping per i dettagli sul mapping. Per i file Avro, vedere DBMS_CLOUD Package Avro to Oracle Data Type Mapping per i dettagli sul mapping. |
format |
Le opzioni che descrivono il formato dei file di origine. Per i file Avro, ORC o Parquet sono supportate solo due opzioni: vedere DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet. |
Note sull'uso
-
Come per altri file di dati, i caricamenti di dati Avro, ORC e Parquet generano log visualizzabili nelle tabelle
dba_load_operationseuser_load_operations. Ogni operazione di caricamento aggiunge un record adba[utente]_load_operationsche indica la tabella contenente i log.La tabella di log fornisce informazioni di riepilogo sul caricamento.
-
Per Avro, ORC o Parquet, se il parametro
formattypeè impostato sul valoreavro,orcoparquet, la tabellaBADFILE_TABLEè sempre vuota.-
Per i file Parquet, gli errori di vincolo
PRIMARY KEYrestituiscono un erroreORA. -
Se i dati di una colonna rilevano un errore di conversione, ad esempio la colonna di destinazione non è sufficientemente grande da contenere il valore convertito, il valore della colonna viene impostato su
NULL. Questo non produce un record rifiutato.
-
Procedura COPY_OBJECT
Questa procedura copia un oggetto da un bucket o una cartella di storage degli oggetti cloud a un altro.
Il bucket o la cartella di origine e di destinazione possono trovarsi nello stesso provider dell'area di memorizzazione degli oggetti cloud o in un provider diverso.
Quando l'origine e la destinazione si trovano in aree di memorizzazione oggetti distinte o hanno account diversi con lo stesso provider cloud, è possibile assegnare nomi di credenziali separati per le posizioni di origine e destinazione.
Per impostazione predefinita, il nome della credenziale di origine viene utilizzato anche dalla posizione di destinazione quando non viene fornito il nome della credenziale di destinazione.
Sintassi
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
);
Parametri
| Parametro | Descrizione |
|---|---|
source_credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud di origine. Se non si specifica un valore |
source_object_uri |
Specifica l'URI che punta al bucket o alla posizione della cartella di storage degli oggetti di origine. Questo parametro è obbligatorio. Il formato degli URI dipende dal servizio di storage degli oggetti cloud. Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud. |
target_object_uri |
Specifica l'URI dell'area di memorizzazione degli oggetti di destinazione. Questo parametro è obbligatorio. Il formato degli URI dipende dal servizio di storage degli oggetti cloud. Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud. |
target_credential_name |
Nome della credenziale per accedere alla posizione di storage degli oggetti cloud di destinazione. Se non si specifica un valore |
Esempio
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;
/
Procedura CREATE_EXTERNAL_PART_TABLE
Questa procedura crea una tabella partizionata esterna sui file nel cloud o dai file in una directory. Ciò consente di eseguire query su dati esterni da Autonomous AI Database.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella esterna. |
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. |
partitioning_clause |
Specifica la clausola di partizionamento completa, incluse le informazioni sulla posizione per le singole partizioni. Se si utilizza il parametro |
file_uri_list |
Questo parametro specifica una lista delimitata da virgole di URI dei file di origine oppure una o più directory e file di origine. URI file di origine cloud È possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi file negli URI dei file di origine cloud. Le espressioni regolari possono essere utilizzate solo se il parametro I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro I pattern di espressione regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza dei pattern è identica a quella eseguita dalla funzione Questa opzione è supportata solo con tabelle esterne create su un file nello storage degli oggetti. Ad esempio: Se si utilizza il parametro Il formato degli URI dipende dal servizio di storage degli oggetti cloud. Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud. Per ulteriori informazioni sulla condizione |
column_list |
Lista delimitata da virgole di nomi di colonna e tipi di dati per la tabella esterna. Questo parametro prevede i seguenti requisiti, a seconda del tipo di file di dati specificato con il parametro
|
field_list |
Identifica i campi nei file di origine e i relativi tipi di dati. Il valore predefinito è NULL, ovvero i campi e i relativi tipi di dati sono determinati dal parametro column_list. La sintassi di questo argomento è la stessa della clausola field_list nelle normali tabelle esterne Oracle. Per ulteriori informazioni, vedere elenco_campi in Oracle Database 19c Utilities o Oracle Database 26ai Utilities. |
format |
L'opzione di formato
Se i file di dati non sono strutturati e la sottoclausola Per i nomi degli oggetti non basati sul formato hive, l'ordine delle colonne specificate Per visualizzare tutte le opzioni dei parametri |
Note sull'uso
-
Non è possibile chiamare questa procedura con i parametri
partitioning_clauseefile_uri_list. -
La specifica del parametro
column_listè facoltativa con i file di dati strutturati, inclusi i file di dati Avro, Parquet o ORC. Secolumn_listnon viene specificato, l'opzionepartition_columnsdel parametroformatdeve includere sianamechetype. -
Il parametro
column_listè obbligatorio con file di dati non strutturati, ad esempio file di testo CSV. - La procedura
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEsupporta i file partizionati esterni nei servizi di storage degli oggetti cloud supportati, tra cui:- Oracle Cloud Infrastructure Object Storage
- Storage Blob Azure
Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud.
-
La procedura
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEsupporta i file partizionati esterni nelle directory, sia in un file system locale che in un file system di rete. -
Quando si chiama
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEcon il parametrofile_uri_list, i tipi di colonne specificati nel nome file dell'area di memorizzazione degli oggetti cloud devono essere uno dei tipi seguenti:VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9) -
Il delimitatore di record predefinito è
detected newline. Condetected newline,DBMS_CLOUDtenta di trovare automaticamente il carattere di nuova riga corretto da utilizzare come delimitatore di record.DBMS_CLOUDcerca prima il carattere\r\ndella nuova riga di Windows. Se trova il carattere newline di Windows, viene utilizzato come delimitatore di record per tutti i file della procedura. Se non viene trovato un carattere di nuova riga di Windows,DBMS_CLOUDcerca il carattere di nuova riga UNIX/Linux\ne se ne trova uno utilizza\ncome delimitatore di record per tutti i file della procedura. Se i file di origine utilizzano una combinazione di delimitatori di record diversi, è possibile che si verifichi un errore, ad esempio "KUP-04020: found record longer than buffer size supported". In questo caso, è necessario modificare i file di origine per utilizzare lo stesso delimitatore di record oppure specificare solo i file di origine che utilizzano lo stesso delimitatore di record.Per informazioni sull'opzione di formato
recorddelmiter, vedere Formati URI di storage degli oggetti cloud. -
Le tabelle partizionate esterne create con
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEincludono due colonne invisibilifile$pathefile$name. Queste colonne consentono di identificare il file da cui proviene un record.-
file$path: specifica il testo del percorso del file fino all'inizio del nome dell'oggetto. -
file$name: specifica il nome dell'oggetto, incluso tutto il testo che segue il nome del bucket.
-
Esempi
Esempio: utilizzo del parametro 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;
/
Esempio: utilizzo dei parametri file_uri_list e column_list con file di dati non strutturati.
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;
/
Esempio: utilizzo del parametro file_uri_list senza il parametro column_list con file di dati strutturati.
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;
/
Esempio: creazione di tabelle partizionate esterne utilizzando gli oggetti memorizzati nel bucket di storage degli oggetti C3.
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'USAGE_EXTP',
credential_name => 'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => 'https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/usage-data/*usage-data*.parquet',
format => json_object(
'type' value 'parquet', 'schema' value 'first',
'partition_columns' value json_array(
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'number'),
json_object('name' value 'day', 'type' value 'number')
)
)
);
END;
/
Procedura CREATE_EXTERNAL_TABLE
Questa procedura crea una tabella esterna su file nel cloud o da file in una directory. Ciò consente di eseguire query su dati esterni da Autonomous AI Database.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella esterna. |
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. Questo parametro non viene utilizzato quando si specifica una directory o un URL collegamento ipertestuale tabella con |
file_uri_list |
Questo parametro specifica una lista delimitata da virgole di URI dei file di origine oppure una o più directory e file di origine. URI file di origine cloud È possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi file negli URI dei file di origine cloud. Le espressioni regolari possono essere utilizzate solo se il parametro I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro I pattern di espressione regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza dei pattern è identica a quella eseguita dalla funzione Questa opzione è supportata solo con tabelle esterne create su un file nello storage degli oggetti. Ad esempio: Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. Per ulteriori informazioni sulla condizione È possibile specificare una directory e uno o più nomi di file oppure utilizzare un elenco separato da virgole di directory e nomi di file. Il formato per specificare una directory è: È possibile utilizzare i caratteri jolly per specificare i nomi dei file in una directory. Il carattere "*" può essere utilizzato come caratteri jolly per più caratteri, il carattere "?" può essere utilizzato come caratteri jolly per un singolo carattere. Ad esempio: Per specificare più directory, utilizzare un elenco separato da virgole: ad esempio: Usare le virgolette doppie per specificare un nome di directory con distinzione tra maiuscole e minuscole. Ad esempio: Per includere una virgoletta, utilizzare due virgolette. Ad esempio: |
column_list |
Lista delimitata da virgole di nomi di colonna e tipi di dati per la tabella esterna. |
field_list |
Identifica i campi nei file di origine e i relativi tipi di dati. Il valore predefinito è NULL, ovvero i campi e i relativi tipi di dati sono determinati dal parametro column_list. La sintassi di questo argomento è uguale alla clausola field_list nelle normali tabelle esterne di Oracle Database. Per ulteriori informazioni su field_list, vedere ORACLE_LOADER Access Driver field_list in field_definitions Clause in Oracle Database 19c Utilities o Oracle Database 26ai Utilities. |
format |
Le opzioni che descrivono il formato dei file di origine. Per l'elenco delle opzioni e la modalità di specifica dei valori, vedere Parametro formato. Per i file in formato Avro, ORC o Parquet, vedere Procedura CREATE_EXTERNAL_TABLE per i file Avro, ORC o Parquet. |
Note sull'uso
-
La procedura
DBMS_CLOUD.CREATE_EXTERNAL_TABLEsupporta i file partizionati esterni nei servizi di storage degli oggetti cloud supportati, incluso Azure Blob Storage.La credenziale è una proprietà a livello di tabella, pertanto i file esterni devono trovarsi nella stessa area di memorizzazione degli oggetti.
Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud.
-
Il delimitatore di record predefinito è
detected newline. Condetected newline,DBMS_CLOUDtenta di trovare automaticamente il carattere di nuova riga corretto da utilizzare come delimitatore di record.DBMS_CLOUDcerca prima il carattere\r\ndella nuova riga di Windows. Se trova il carattere newline di Windows, viene utilizzato come delimitatore di record per tutti i file della procedura. Se non viene trovato un carattere di nuova riga di Windows,DBMS_CLOUDcerca il carattere di nuova riga UNIX/Linux\ne se ne trova uno utilizza\ncome delimitatore di record per tutti i file della procedura. Se i file di origine utilizzano una combinazione di delimitatori di record diversi, è possibile che si verifichi un errore, ad esempio "KUP-04020: found record longer than buffer size supported". In questo caso, è necessario modificare i file di origine per utilizzare lo stesso delimitatore di record oppure specificare solo i file di origine che utilizzano lo stesso delimitatore di record.Per informazioni sull'opzione di formato
recorddelimiter, vedere Parametro formato.
Esempi
Esempio: creazione di una tabella esterna da un file CSV nello storage degli oggetti.
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
Esempio: creazione di una tabella esterna utilizzando gli oggetti memorizzati nel bucket di storage degli oggetti C3.
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name =>'CHANNELS_EXT',
credential_name =>'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => '<https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/channels.txt>',
format => json_object('delimiter' value ','),
column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)'
);
END;
/
Procedura CREATE_EXTERNAL_TABLE per Apache Iceberg
Questa procedura crea tabelle esterne per le tabelle Apache Iceberg nelle configurazioni supportate.
Sono supportate queste configurazioni specifiche:
-
Tavoli Iceberg su AWS:
-
Tabelle Iceberg registrate con AWS Glue Data Catalog, create con Spark o Athena.
Per ulteriori informazioni, vedere Utilizzare il connettore AWS Glue per leggere e scrivere le tabelle Apache Iceberg con transazioni ACID ed eseguire viaggi nel tempo e Uso delle tabelle Iceberg.
-
Tabelle Iceberg memorizzate su AWS S3 fornendo direttamente l'URL per il file di metadati radice.
-
-
Tavoli Iceberg su OCI:
-
Tabelle Iceberg generate con OCI Data Flow utilizzando un catalogo Hadoop.
Per ulteriori informazioni, vedere Esempi di flusso di dati Oracle e Uso di un catalogo Hadoop.
-
Tabelle Iceberg memorizzate nello storage degli oggetti OCI fornendo direttamente l'URL per il file di metadati radice.
-
Sintassi
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
);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella esterna. |
credential_name |
Nome della credenziale utilizzata per accedere ai file di dati, ai file di metadati e al catalogo Iceberg (se utilizzato). Per le configurazioni AWS e OCI, la credenziale deve essere creata come descritto nella procedura CREDENTIAL. Le credenziali dei nomi delle risorse AWS Amazon (ARN) non sono attualmente supportate. |
file_uri_list |
Deve essere NULL se viene specificato un catalogo Iceberg (vedere il parametro format di seguito). Se non si utilizza un catalogo iceberg, file_uri_list deve contenere l'URI del file di metadati iceberg. |
column_list |
Deve essere NULL, poiché i nomi e i tipi di colonna vengono derivati automaticamente dai metadati Iceberg. I nomi delle colonne corrispondono ai nomi trovati nei file di dati sottostanti (Parquet, Avro, ORC). I tipi di dati Oracle vengono derivati utilizzando i mapping Parquet/Avro/ORC tra Iceberg e i tipi di dati Parquet, Avro e ORC. Pertanto, gli utenti non possono specificare |
field_list |
Deve essere NULL, poiché i nomi delle colonne e i tipi di dati vengono derivati automaticamente dai metadati Iceberg. |
format |
Il parametro Per ulteriori informazioni, vedere Supporto Iceberg sugli esempi di OCI Data Flow e Formati URI DBMS_CLOUD. |
Parametri di formato di esempio
-
Quando si creano tabelle su una tabella AWS Iceberg utilizzando un catalogo AWS Glue, si verifica quanto riportato di seguito.
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')));Dove il parametro
access_protocolcontiene un oggetto JSON con due elementi come indicato di seguito.protocol_type: deve essere 'iceberg'protocol_config: un oggetto JSON nidificato che specifica i dettagli del catalogo iceberg.iceberg_catalog_type: deve essere'aws_glue'iceberg_glue_region: area del catalogo, ad esempio'us-west-1'iceberg_table_path: percorsoglue database.glue table name.
-
Quando si creano tabelle su una tabella dell'iceberg AWS utilizzando un URI del file di metadati, si verifica quanto riportato di seguito.
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg') -
Durante la creazione di tabelle su una tabella dell'iceberg OCI creata da OCI Data Flow utilizzando il catalogo HadoopCatalog, si verifica quanto riportato di seguito.
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')));Dove il parametro
access_protocolcontiene un oggetto JSON con due elementi come indicato di seguito.protocol_type: deve essere'iceberg'protocol_config: un oggetto JSON nidificato che specifica i dettagli del catalogo iceberg.iceberg_catalog_type: deve essere'hadoop'iceberg_warehouse: il percorso della directory warehouse utilizzato durante la generazione della tabella, in formato URI nativo.iceberg_table_path: il percorsodatabase_name.table nameutilizzato durante la creazione della tabella.
-
Quando si creano tabelle su una tabella dell'iceberg OCI utilizzando l'URI del file di metadati, si verifica quanto riportato di seguito.
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg')Dove il parametro
access_protocolcontiene un oggetto JSON con un elemento,protocol_type, che deve essere'iceberg'.
Procedura CREATE_EXTERNAL_TABLE per i file Avro, ORC o Parquet
Questa procedura con il parametro format type impostato sul valore avro, orc o parquet crea una tabella esterna con file in formato Avro, ORC o Parquet nel cloud o in una directory.
Ciò consente di eseguire query su dati esterni da Autonomous AI Database.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella esterna. |
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. Questo parametro non viene utilizzato quando si specifica una directory con |
file_uri_list |
Questo parametro specifica una lista delimitata da virgole di URI dei file di origine oppure una o più directory e file di origine. URI file di origine cloud È possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi file negli URI dei file di origine cloud. Le espressioni regolari possono essere utilizzate solo se il parametro I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro I pattern di espressione regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza dei pattern è identica a quella eseguita dalla funzione Questa opzione è supportata solo con tabelle esterne create su un file nello storage degli oggetti. Ad esempio: Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. Per ulteriori informazioni sulla condizione Directory È possibile specificare una directory e uno o più nomi di file oppure utilizzare un elenco separato da virgole di directory e nomi di file. Il formato per specificare una directory è: È possibile utilizzare i caratteri jolly per specificare i nomi dei file in una directory. Il carattere "*" può essere utilizzato come caratteri jolly per più caratteri, il carattere "?" può essere utilizzato come caratteri jolly per un singolo carattere. Ad esempio: Per specificare più directory, utilizzare un elenco separato da virgole: ad esempio: Usare le virgolette doppie per specificare un nome di directory con distinzione tra maiuscole e minuscole. Ad esempio: Per includere una virgoletta, utilizzare due virgolette. Ad esempio: |
column_list |
(Facoltativo) Se specificato, questo campo sostituisce il parametro Quando si specifica Per i file Parquet, vedere DBMS_CLOUD Package Parquet to Oracle Data Type Mapping per i dettagli. Per i file ORC, vedere DBMS_CLOUD Package ORC to Oracle Data Type Mapping per i dettagli. Per i file Avro, vedere DBMS_CLOUD Package Avro to Oracle Data Type Mapping per i dettagli. |
field_list |
Ignorato per i file Avro, ORC o Parquet. I campi nell'origine corrispondono alle colonne della tabella esterna in base al nome. I tipi di dati di origine vengono convertiti nel tipo di dati della colonna della tabella esterna. Per i file ORC, vedere DBMS_CLOUD Package ORC to Oracle Data Type Mapping Per i file Parquet, vedere DBMS_CLOUD Package Parquet to Oracle Data Type Mapping per i dettagli. Per i file Avro, vedere DBMS_CLOUD Package Avro to Oracle Data Type Mapping per i dettagli. |
format |
Per i file di origine Avro, ORC o Parquet type, vedere DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet per i dettagli. |
Esempi
-
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') -
Parquet
format => '{"type":"parquet", "schema": "all"}'format => json_object('type' value 'parquet', 'schema' value 'first')
Suggerimento: per informazioni sul mapping dei nomi delle colonne e sull'uso della conversione dei nomi delle colonne in Oracle SQL, vedere DBMS_CLOUD Package Avro, ORC e Parquet to Oracle Column Name Mapping.
Procedura CREATE_EXTERNAL_TEXT_INDEX
Questa procedura crea un indice di testo nei file di storage degli oggetti.
La procedura CREATE_EXTERNAL_TEXT_INDEX crea un indice di testo nei file di storage degli oggetti specificati nella posizione location_uri. L'indice viene aggiornato a intervalli regolari per eventuali nuove aggiunte o eliminazioni eseguite con i file nell'URI posizione.
Sintassi
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
);
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Nome della credenziale per accedere alla posizione dello storage degli oggetti cloud. Per gli URI bucket pubblici, preautenticati o pre-firmati, è possibile specificare un valore NULL. Se non si specifica un valore |
location_uri |
Questo parametro specifica la lista delimitata da virgole degli URI del file di origine. È possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi file negli URI dei file di origine cloud. Questo parametro è obbligatorio. URI file di origine cloud Questo parametro specifica una lista delimitata da virgole di URI dei file di origine oppure una o più directory e file di origine. Le espressioni regolari possono essere utilizzate solo se il parametro I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro I pattern di espressione regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza dei pattern è identica a quella eseguita dalla funzione Esempio di utilizzo di espressioni regolari: Esempio con caratteri jolly:
Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. Per ulteriori informazioni sulla condizione |
index_name |
Specifica il nome dell'indice che si sta creando sui file situati nella posizione `location_uri`. Questo parametro è obbligatorio. |
format |
Specifica le opzioni di configurazione aggiuntive. Le opzioni sono specificate come stringa JSON. Di seguito sono riportate le opzioni di formato supportate.
Il valore È possibile specificare le parole di arresto utilizzando i metodi indicati di seguito.
Se non si specifica un parametro |
Esempio
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;
/
Procedura CREATE_HYBRID_PART_TABLE
Questa procedura crea una tabella con partizionamento ibrido. Ciò consente di eseguire query su dati partizionati ibridi da Autonomous AI Database utilizzando oggetti e file di database nel cloud o oggetti e file di database in una directory.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella esterna. |
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. |
partitioning_clause |
Specifica la clausola di partizionamento completa, incluse le informazioni sulla posizione per le singole partizioni. Per utilizzare le directory, la clausola di partizionamento supporta i valori È possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi file negli URI dei file di origine cloud. Le espressioni regolari possono essere utilizzate solo se il parametro I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro I pattern di espressione regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza dei pattern è identica a quella eseguita dalla funzione Ad esempio: Per ulteriori informazioni sulla condizione |
column_list |
Lista delimitata da virgole di nomi di colonna e tipi di dati per la tabella esterna. |
field_list |
Identifica i campi nei file di origine e i relativi tipi di dati. Il valore predefinito è NULL, ovvero i campi e i relativi tipi di dati sono determinati dal parametro column_list. La sintassi di questo argomento è la stessa della clausola field_list nelle normali tabelle esterne Oracle. Per ulteriori informazioni, vedere elenco_campi in Oracle Database 19c Utilities o Oracle Database 26ai Utilities. |
format |
Le opzioni che descrivono il formato dei file di origine. Per l'elenco delle opzioni e le modalità di specifica dei valori, vedere Parametro formato. |
Note sull'uso
-
La procedura
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEsupporta i file partizionati esterni nei servizi di storage degli oggetti cloud supportati, incluso Azure Blob Storage.La credenziale è una proprietà a livello di tabella, pertanto i file esterni devono trovarsi nella stessa area di memorizzazione degli oggetti.
Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud.
-
La procedura
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEsupporta i file partizionati ibridi presenti nelle directory, sia in un file system locale che in un file system di rete. -
Le tabelle partizionate esterne create con
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEincludono due colonne invisibilifile$pathefile$name. Queste colonne consentono di identificare il file da cui proviene un record.-
file$path: specifica il testo del percorso del file fino all'inizio del nome dell'oggetto. -
file$name: specifica il nome dell'oggetto, incluso tutto il testo che segue il nome del bucket.
-
Esempi
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;
/
Procedura DELETE_ALL_OPERATIONS
Questa procedura cancella tutte le operazioni di caricamento dati registrate nella tabella user_load_operations nello schema oppure cancella tutte le operazioni di caricamento dati del tipo specificato, come indicato con il parametro type.
Sintassi
DBMS_CLOUD.DELETE_ALL_OPERATIONS (
type IN VARCHAR DEFAULT NULL);
Parametri
| Parametro | Descrizione |
|---|---|
type |
Specifica il tipo di operazione da eliminare. I valori dei tipi sono disponibili nella colonna Se non viene specificato alcun valore |
Nota per l'uso
DBMS_CLOUD.DELETE_ALL_OPERATIONS non elimina le operazioni attualmente in esecuzione (operazioni con stato "In esecuzione").
Procedura DELETE_FILE
Questa procedura rimuove il file specificato dalla directory specificata in Autonomous AI Database.
Sintassi
DBMS_CLOUD.DELETE_FILE (
directory_name IN VARCHAR2,
file_name IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parametri
| Parametro | Descrizione |
|---|---|
directory_name |
Nome della directory nell'istanza di Autonomous AI Database. |
file_name |
Nome del file da rimuovere. |
force |
Ignora e non segnalare errori se il file non esiste. I valori validi sono: TRUE e FALSE. Il valore predefinito è FALSE. |
Nota: per eseguire DBMS_CLOUD.DELETE_FILE con un utente diverso da ADMIN, è necessario concedere privilegi di scrittura sulla directory che contiene il file a tale utente. Ad esempio, eseguire il comando seguente come ADMIN per concedere privilegi di scrittura a atpc_user:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Esempio
BEGIN
DBMS_CLOUD.DELETE_FILE(
directory_name => 'DATA_PUMP_DIR',
file_name => 'exp1.dmp' );
END;
/
Procedura DELETE_OBJECT
Questa procedura elimina l'oggetto specificato nell'area di memorizzazione degli oggetti.
Sintassi
DBMS_CLOUD.DELETE_OBJECT (
credential_name IN VARCHAR2,
object_uri IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE);
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. |
object_uri |
URI oggetto o file per l'oggetto da eliminare. Il formato dell'URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. |
force |
Ignora e non segnala errori se l'oggetto non esiste. I valori validi sono: TRUE e FALSE. Il valore predefinito è FALSE. |
Esempio
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;
/
Procedura DELETE_OPERATION
Questa procedura cancella le voci di caricamento dati per l'ID operazione specificato registrato nelle tabelle user_load_operations o dba_load_operations nello schema.
Sintassi
DBMS_CLOUD.DELETE_OPERATION (
id IN NUMBER);
Parametri
| Parametro | Descrizione |
|---|---|
id |
Specifica l'ID operazione associato alle voci del file di log che si desidera eliminare. |
Esempio
SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION(id);
Procedura DROP_EXTERNAL_TEXT_INDEX
Questa procedura elimina l'indice di testo nei file di storage degli oggetti.
La procedura DROP_EXTERNAL_TEXT_INDEX elimina l'indice specificato creato con la procedura CREATE_EXTERNAL_TEXT_INDEX.
Sintassi
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
index_name IN VARCHAR2,
);
Parametri
| Parametro | Descrizione |
|---|---|
index_name |
Specifica il nome dell'indice che si sta eliminando. Il nome dell'indice deve corrispondere al nome fornito al momento della creazione dell'indice. Questo parametro è obbligatorio. |
Esempio
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
index_name => 'EMP',
);
END;
/
Procedura EXPORT_DATA
Questa procedura esporta i dati da Autonomous AI Database in base al risultato di una query. Questa procedura è sovraccaricata e supporta la scrittura di file nel cloud o in una directory.
In base al parametro format type, la procedura esporta i file nel cloud o in una posizione di directory come file di testo in formato CSV, JSON, Parquet o XML.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. Se il parametro della credenziale non è incluso, viene specificato l'output in una directory. |
file_uri_list |
Esistono moduli diversi, a seconda del valore del parametro di formato e a seconda che si includa un parametro di credenziale:
Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. |
format |
Stringa JSON che fornisce le opzioni di formato di esportazione. L'opzione supportata è:
|
query |
Utilizzare questo parametro per specificare un'istruzione Quando il valore Ad esempio: |
operation_id |
Utilizzare questo parametro per tenere traccia dell'avanzamento e dello stato finale dell'operazione di esportazione come ID corrispondente nella vista USER_LOAD_OPERATIONS. |
Note sull'uso
-
Il valore del parametro
queryfornito può essere una query avanzata, se necessario, ad esempio una query che include join o subquery. -
A seconda del parametro di formato specificato,
DBMS_CLOUD.EXPORT_DATArestituisce i risultati della query specificata nell'area di memorizzazione degli oggetti cloud o in una posizione di directory in formati file CSV, JSON, Parquet o XML.Per ulteriori informazioni sull'uso di
DBMS_CLOUD.EXPORT_DATAcon file di output CSV, JSON, Parquet o XML, vedere Esporta dati nell'area di memorizzazione degli oggetti come testo utilizzando DBMS_CLOUD.EXPORT_DATA ed Esporta dati in una directory utilizzando DBMS_CLOUD.EXPORT_DATA. -
Per l'output CSV, JSON o XML, per impostazione predefinita quando un file generato contiene 10 MB di dati, viene creato un nuovo file di output. Tuttavia, se hai meno di 10 MB di dati dei risultati, potresti avere più file di output, a seconda del servizio di database e del numero di ECPU (OCPU se il tuo database utilizza OCPU) per l'istanza di Autonomous AI Database.
Per ulteriori informazioni, vedere Denominazione file per output di testo (CSV, JSON, Parquet o XML).
La dimensione chunk predefinita del file di output è 10 MB per CSV, JSON o XML. È possibile modificare questo valore con l'opzione
maxfilesizedel parametroformat. Per ulteriori informazioni, vedere DBMS_CLOUD Package Format Options for EXPORT_DATA. -
Per l'output CSV, JSON o XML, per impostazione predefinita quando un file generato contiene 10 MB di dati, viene creato un nuovo file di output. Tuttavia, se hai meno di 10 MB di dati dei risultati, potresti avere più file di output, a seconda del servizio di database e del numero di ECPU (OCPU se il tuo database utilizza OCPU) per l'istanza di Autonomous AI Database.
Per ulteriori informazioni, vedere Denominazione file per output di testo (CSV, JSON, Parquet o XML).
-
Il formato di output del parquet può essere utilizzato solo con servizi di database elevati e medi per Autonomous AI Databases su Dedicated Exadata Infrastructure.
Note sull'uso per `DBMS_CLOUD.EXPORT_DATA` con output in una directory
-
La directory fornita deve esistere ed è necessario eseguire il login come utente
ADMINo disporre dell'accessoWRITEalla directory. -
DBMS_CLOUD.EXPORT_DATAnon crea directory. -
La procedura non sovrascrive i file. Ad esempio, se esiste un file di dump in
file_uri_list,DBMS_CLOUD.EXPORT_DATAsegnala un errore simile al seguente:
ORA-31641: unable to create dump file "/u02/exports/123.dmp"
ORA-27038: created file already exists
Esempi
Esempio: DBMS_CLOUD.EXPORT_DATA con il parametro formato type con il valore json.
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;
/
Esempio: DBMS_CLOUD.EXPORT_DATA con il parametro formato type con il valore xml.
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;
/
Esempio: DBMS_CLOUD.EXPORT_DATA con il parametro formato type con il valore csv.
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;
/
Procedura e funzione GET_OBJECT
Questa procedura è sovraccaricata. Il form di procedura legge un oggetto dallo storage degli oggetti cloud e lo copia in Autonomous AI Database. Il form funzione legge un oggetto da Cloud Object Storage e restituisce un valore BLOB ad Autonomous AI Database.
Sintassi
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;
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. |
object_uri |
URI oggetto o file. Il formato dell'URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. |
directory_name |
Il nome della directory nel database. (Vedere la nota a piè di pagina 1 di seguito) |
file_name |
Specifica il nome del file da creare. Se il nome del file non viene specificato, il nome del file viene utilizzato dopo l'ultima barra nel parametro object_uri. Per casi speciali, ad esempio quando il nome del file contiene barre, utilizzare il parametro file_name. |
startoffset |
L'offset, in byte, da cui inizia la lettura della procedura. |
endoffset |
L'offset, in byte, fino a quando la procedura non smette di leggere. |
compression |
Specifica la compressione utilizzata per memorizzare l'oggetto. Quando compression è impostato su 'AUTO', il file non viene compresso (il valore 'AUTO' implica che l'oggetto specificato con object_uri viene compresso con Gzip). |
Nota a piè di pagina 1
Nota: per eseguire DBMS_CLOUD.GET_OBJECT con un utente diverso da ADMIN, è necessario concedere privilegi WRITE sulla directory a tale utente. Ad esempio, eseguire il comando seguente come ADMIN per concedere privilegi di scrittura a atpc_user:
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Valori restituiti
Il form funzione legge dall'area di memorizzazione degli oggetti e DBMS_CLOUD.GET_OBJECT restituisce un valore BLOB.
Esempi
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;
/
Esempio: per leggere i dati dei caratteri da un file nell'area di memorizzazione degli oggetti.
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;
Esempio: per aggiungere un'immagine memorizzata nell'area di memorizzazione degli oggetti in un file BLOB nel database.
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;
/
In questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.
Funzione LIST_FILES
Questa funzione elenca i file nella directory specificata. I risultati includono i nomi dei file e i metadati aggiuntivi relativi ai file, ad esempio la dimensione del file in byte, l'indicatore orario di creazione e l'indicatore orario dell'ultima modifica.
Sintassi
DBMS_CLOUD.LIST_FILES (
directory_name IN VARCHAR2)
RETURN TABLE;
Parametri
| Parametro | Descrizione |
|---|---|
directory_name |
Il nome della directory nel database. Questo parametro supporta i caratteri jolly. |
Note sull'uso
-
Per eseguire
DBMS_CLOUD.LIST_FILEScon un utente diverso da ADMIN, è necessario concedere privilegi di lettura sulla directory a tale utente. Ad esempio, eseguire il comando seguente come ADMIN per concedere privilegi di lettura aatpc_user:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user; - Questa è una funzione di tabella con tipo restituito
DBMS_CLOUD_TYPES.list_object_ret_t. DBMS_CLOUD.LIST_FILESnon ottiene il valore di checksum e restituisceNULLper questo campo.DBMS_CLOUD.LIST_FILESsupporta il filtro dei file in modo selettivo utilizzando la sintassidirectory:filename. I caratteri jolly sono supportati nel nome del file.
Esempi
Esempio: utilizzo della query seguente per utilizzare DBMS_CLOUD.LIST_FILES come funzione pipeline che restituisce una riga per ogni file.
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
È inoltre possibile utilizzare DBMS_CLOUD.LIST_FILES con sintassi DIRECTORY:FILE specificando un file o utilizzando caratteri jolly. * e ? sono i caratteri jolly supportati.
Esempio: per elencare tutti i file CSV che iniziano con "f" nella directory DATA_PUMP_DIR utilizzando un carattere jolly.
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f*.csv');
Esempio: elencare il file f1.csv nella directory DATA_PUMP_DIR specificando il nome del file.
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f1.csv');
Funzione LIST_OBJECTS
Questa funzione elenca gli oggetti nella posizione specificata nell'area di memorizzazione degli oggetti. I risultati includono i nomi degli oggetti e i metadati aggiuntivi relativi agli oggetti, ad esempio dimensione, checksum, indicatore orario di creazione e indicatore orario dell'ultima modifica.
Sintassi
DBMS_CLOUD.LIST_OBJECTS (
credential_name IN VARCHAR2,
location_uri IN VARCHAR2)
RETURN TABLE;
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. |
location_uri |
Bucket di storage degli oggetti o URI cartella. Il formato degli URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. I caratteri jolly sono supportati per elencare in modo selettivo file o sottocartelle in un URI. I caratteri " Esempio con caratteri jolly: |
Note sull'uso
-
A seconda delle capacità dell'area di memorizzazione degli oggetti,
DBMS_CLOUD.LIST_OBJECTSnon restituisce valori per determinati attributi e il valore restituito per il campo èNULLin questo caso.Tutti gli archivi oggetti supportati restituiscono valori per i campi
OBJECT_NAME,BYTESeCHECKSUM. La tabella riportata di seguito mostra il supporto per i campiCREATEDeLAST_MODIFIEDper area di memorizzazione degli oggetti.Area di memorizzazione degli oggetti CREATEDLAST_MODIFIEDOracle Cloud Infrastructure Native Indicatore orario resi Indicatore orario resi Oracle Cloud Infrastructure Swift Restituisce NULLIndicatore orario resi Amazon S3 Restituisce NULLIndicatore orario resi Compatibile con Amazon S3 Restituisce NULLIndicatore orario resi Azure Indicatore orario resi Indicatore orario resi -
Il valore di checksum è il checksum MD5. Si tratta di un numero esadecimale di 32 caratteri calcolato sul contenuto dell'oggetto.
-
Questa è una funzione di tabella con tipo restituito
DBMS_CLOUD_TYPES.list_object_ret_t.
Esempio
Questa è una funzione a pipeline che restituisce una riga per ogni oggetto. Ad esempio, utilizzare la seguente query per utilizzare questa funzione:
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
In questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.
Procedura MOVE_OBJECT
Questa procedura sposta un oggetto da un bucket o una cartella di storage degli oggetti cloud a un altro.
Il bucket o la cartella di origine e di destinazione possono trovarsi nello stesso provider dell'area di memorizzazione degli oggetti cloud o in un provider diverso.
Quando l'origine e la destinazione si trovano in aree di memorizzazione oggetti distinte o hanno account diversi con lo stesso provider cloud, è possibile assegnare nomi di credenziali separati per le posizioni di origine e destinazione.
Per impostazione predefinita, il nome della credenziale di origine viene utilizzato anche dalla posizione di destinazione quando non viene fornito il nome della credenziale di destinazione.
Sintassi
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
);
Parametri
| Parametro | Descrizione |
|---|---|
source_credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud di origine. Se non si specifica un valore |
source_object_uri |
Specifica l'URI che punta al bucket o alla posizione della cartella di storage degli oggetti di origine. Questo parametro è obbligatorio. Il formato degli URI dipende dal servizio di storage degli oggetti cloud. Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud. |
target_object_uri |
Specifica l'URI per il bucket o la cartella di storage degli oggetti di destinazione, in cui è necessario spostare i file. Questo parametro è obbligatorio. Il formato degli URI dipende dal servizio di storage degli oggetti cloud. Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud. |
target_credential_name |
Nome della credenziale per accedere alla posizione di storage degli oggetti cloud di destinazione. Se non si specifica un valore |
Esempio
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;
/
Procedura PUT_OBJECT
Questa procedura è sovraccaricata. In un modulo, la procedura copia un file da Autonomous AI Database allo storage degli oggetti cloud. In un altro formato, la procedura copia un BLOB da Autonomous AI Database allo storage degli oggetti cloud.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Nome della credenziale per accedere allo storage degli oggetti cloud. |
object_uri |
URI oggetto o file. Il formato dell'URI dipende dal servizio di storage degli oggetti cloud in uso. Per i dettagli, vedere Formati URI di storage degli oggetti cloud. |
directory_name |
Il nome della directory nel database. (Vedere la nota a piè di pagina 1 di seguito) |
contents |
Specifica il file BLOB da copiare da Autonomous AI Database allo storage degli oggetti cloud. |
file_name |
Il nome del file nella directory specificata. |
compression |
Specifica la compressione utilizzata per memorizzare l'oggetto. Valore predefinito: |
Nota a piè di pagina 1
Nota: per eseguire DBMS_CLOUD.PUT_OBJECT con un utente diverso da ADMIN, è necessario concedere privilegi di lettura sulla directory a tale utente. Ad esempio, eseguire il comando seguente come ADMIN per concedere privilegi di lettura a atpc_user:
GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
Esempio
Per gestire i dati BLOB dopo l'elaborazione nel database, quindi memorizzare i dati direttamente in un file nell'area di memorizzazione degli oggetti:
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;
/
Note sull'uso
A seconda dello storage degli oggetti cloud in uso, le dimensioni dell'oggetto trasferito sono limitate come indicato di seguito.
| Servizio di storage degli oggetti Cloud | Limite dimensione trasferimento oggetto |
|---|---|
| Oracle Cloud Infrastructure Object Storage | 50 GB |
| Amazon S3 | 5 GB |
| Storage Blob Azure | 256 MB |
| Compatibile con Amazon S3 | Impostato dal provider dell'area di memorizzazione degli oggetti. Per ulteriori informazioni, consultare la documentazione del provider. |
L'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non consente la scrittura di file in un bucket pubblico senza fornire credenziali (Oracle Cloud Infrastructure consente agli utenti di scaricare oggetti dai bucket pubblici). Pertanto, devi fornire un nome di credenziale con credenziali valide per memorizzare un oggetto in un bucket pubblico di Oracle Cloud Infrastructure utilizzando PUT_OBJECT.
Per ulteriori informazioni, vedere Formati URI dello storage degli oggetti cloud.
Procedura SYNC_EXTERNAL_PART_TABLE
Questa procedura semplifica l'aggiornamento di una tabella partizionata esterna dai file nel cloud. Eseguire questa procedura ogni volta che vengono aggiunte nuove partizioni o quando le partizioni vengono rimosse dall'origine dell'area di memorizzazione degli oggetti per la tabella partizionata esterna.
Sintassi
DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE (
table_name IN VARCHAR2,
schema_name IN VARCHAR2 DEFAULT,
update_columns IN BOOLEAN DEFAULT);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Nome della tabella di destinazione. La tabella di destinazione deve essere creata prima di eseguire DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE. |
schema_name |
Nome dello schema in cui risiede la tabella di destinazione. Il valore predefinito è NULL, ovvero la tabella di destinazione si trova nello stesso schema dell'utente che esegue la procedura. |
update_columns |
I nuovi file possono introdurre una modifica allo schema. Gli aggiornamenti supportati includono: nuove colonne, colonne eliminate. Gli aggiornamenti alle colonne esistenti, ad esempio una modifica del tipo di dati, generano errori. Valore predefinito: False |
Procedura VALIDATE_EXTERNAL_PART_TABLE
Questa procedura convalida i file di origine per una tabella partizionata esterna, genera informazioni di log e memorizza le righe che non corrispondono alle opzioni di formato specificate per la tabella esterna in una tabella badfile in Autonomous AI Database. Il form sovraccarico consente di utilizzare il parametro operation_id.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella esterna. |
operation_id |
Utilizzare questo parametro per tenere traccia dell'avanzamento e dello stato finale dell'operazione di caricamento come ID corrispondente nella vista USER_LOAD_OPERATIONS. |
partition_name |
Se definito, viene convalidata solo una partizione specifica. Se non specificato, leggere tutte le partizioni in sequenza fino al raggiungimento di rowcount. |
subpartition_name |
Se definito, viene convalidata solo una partizione secondaria specifica. Se non specificato, leggere in sequenza da tutte le partizioni esterne o secondarie fino al raggiungimento di rowcount. |
schema_name |
Nome dello schema in cui risiede la tabella esterna. Il valore predefinito è NULL, ovvero la tabella esterna si trova nello stesso schema dell'utente che esegue la procedura. |
rowcount |
Numero di righe da eseguire la scansione. Il valore predefinito è NULL, ovvero vengono analizzate tutte le righe nei file di origine. |
partition_key_validation |
Solo per uso interno. Non utilizzare questo parametro. |
stop_on_error |
Determina se la convalida deve essere interrotta quando una riga viene rifiutata. Il valore predefinito è TRUE, che indica che la convalida si interrompe alla prima riga rifiutata. L'impostazione del valore su FALSE specifica che la convalida non si arresta alla prima riga rifiutata e convalida tutte le righe fino al valore specificato per il parametro rowcount. |
Procedura VALIDATE_EXTERNAL_TABLE
Questa procedura convalida i file di origine per una tabella esterna, genera informazioni di log e memorizza le righe che non corrispondono alle opzioni di formato specificate per la tabella esterna in una tabella badfile in Autonomous AI Database. Il form sovraccarico consente di utilizzare il parametro operation_id.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella esterna. |
operation_id |
Utilizzare questo parametro per tenere traccia dell'avanzamento e dello stato finale dell'operazione di caricamento come ID corrispondente nella vista USER_LOAD_OPERATIONS. |
schema_name |
Nome dello schema in cui risiede la tabella esterna. Il valore predefinito è NULL, ovvero la tabella esterna si trova nello stesso schema dell'utente che esegue la procedura. |
rowcount |
Numero di righe da eseguire la scansione. Il valore predefinito è NULL, ovvero vengono analizzate tutte le righe nei file di origine. |
stop_on_error |
Determina se la convalida deve essere interrotta quando una riga viene rifiutata. Il valore predefinito è Se la tabella esterna fa riferimento a file Avro, ORC o Parquet, la convalida si interrompe alla prima riga rifiutata. Quando la tabella esterna specifica il parametro |
Nota per l'uso
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE funziona sia con tabelle esterne partizionate che con tabelle partizionate ibride. Questo potenzialmente legge i dati da tutte le partizioni esterne fino al raggiungimento di rowcount o all'applicazione di stop_on_error. Non si dispone del controllo su quale partizione, o parti di una partizione, viene letta in quale ordine.
Procedura VALIDATE_HYBRID_PART_TABLE
Questa procedura convalida i file di origine per una tabella con partizionamento ibrido, genera informazioni di log e memorizza le righe che non corrispondono alle opzioni di formato specificate per la tabella ibrida in una tabella badfile in Autonomous AI Database. Il form sovraccarico consente di utilizzare il parametro operation_id.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
table_name |
Il nome della tabella esterna. |
operation_id |
Utilizzare questo parametro per tenere traccia dell'avanzamento e dello stato finale dell'operazione di caricamento come ID corrispondente nella vista USER_LOAD_OPERATIONS. |
partition_name |
Se definito, viene convalidata solo una partizione specifica. Se non specificato, leggere tutte le partizioni esterne in sequenza fino al raggiungimento di rowcount. |
subpartition_name |
Se definito, viene convalidata solo una partizione secondaria specifica. Se non specificato, leggere in sequenza da tutte le partizioni esterne o secondarie fino al raggiungimento di rowcount. |
schema_name |
Nome dello schema in cui risiede la tabella esterna. Il valore predefinito è NULL, ovvero la tabella esterna si trova nello stesso schema dell'utente che esegue la procedura. |
rowcount |
Numero di righe da eseguire la scansione. Il valore predefinito è NULL, ovvero vengono analizzate tutte le righe nei file di origine. |
partition_key_validation |
Solo per uso interno. Non utilizzare questo parametro. |
stop_on_error |
Determina se la convalida deve essere interrotta quando una riga viene rifiutata. Il valore predefinito è TRUE, che indica che la convalida si interrompe alla prima riga rifiutata. L'impostazione del valore su FALSE specifica che la convalida non si arresta alla prima riga rifiutata e convalida tutte le righe fino al valore specificato per il parametro rowcount. |