Opzioni formato package DBMS_CLOUD

L'argomento del formato in DBMS_CLOUD specifica il formato dei file di origine.

Di seguito sono riportati i due modi per specificare l'argomento del formato.

format => '{"format_option" : "format_value" }'

and

format => json_object('format_option' value 'format_value')

Esempi:

format => json_object('type' VALUE 'CSV')

Per specificare più opzioni di formato, separare i valori con "," come mostrato di seguito:

format => json_object('ignoremissingcolumns' value 'true', 'removequotes' value 'true',
                           'dateformat' value 'YYYY-MM-DD-HH24-MI-SS', 'blankasnull' value 'true', 'logretention' value 7)

Nota: per le opzioni di formato Avro, ORC o Parquet, vedere Opzioni di formato del pacchetto DBMS_CLOUD per Avro, ORC o Parquet.

Come indicato nella colonna Opzione formato, un set limitato di opzioni di formato è valido con DBMS_CLOUD.COPY_COLLECTION o con DBMS_CLOUD.COPY_DATA quando format type è JSON.

Opzione di formato Descrizione Sintassi
blankasnull Se impostato su true, carica i campi costituiti da spazi come valore nullo.

blankasnull : true

Valore predefinito: False

characterset

Valido con JSON e format COPY_DATA

Specifica il set dei caratteri dei file di origine

characterset: stringa

Valore predefinito: set di caratteri del database

columnpath

Utilizza solo con JSON e format COPY_DATA

Array di espressioni di percorso JSON corrispondenti ai campi che devono essere estratti dai record JSON. Ciascuna delle espressioni di percorso JSON nell'array deve seguire le regole descritte in SQL/JSON Path Expressions in Oracle Database 19c JSON Developer's Guide o in Oracle Database 26ai JSON Developer's Guide.

Utilizzare solo con il formato JSON e DBMS_CLOUD.COPY_DATA.

Array JSON delle espressioni di percorso json espresse in formato stringa. Ad esempio: valore 'columnpath' '["$.WEATHER_STATION_ID", "$.WEATHER_STATION_NAME"]'

compression

Opzione valida con dati JSON

Specifica il tipo di compressione del file di origine.

Formato di archiviazione ZIP non supportato.

Se si specifica il valore auto, vengono controllati i tipi di compressione: gzip, zlib, std, bzip2.

compression: auto|gzip|zlib|bzip2

Valore predefinito: valore nullo senza compressione.

conversionerrors Se una riga viene rifiutata a causa di errori di conversione del tipo di dati, le colonne correlate vengono memorizzate come nulle o la riga viene rifiutata.

conversionerrors : reject_record | store_null

Valore predefinito: reject_record

dateformat

Specifica il formato della data nel file di origine. L'opzione di formato AUTO cerca i seguenti formati:

J
MM-DD-YYYYBC
MM-DD-YYYY
YYYYMMDD HHMISS
YYMMDD HHMISS
YYYY.DDD
YYYY-MM-DD

dateformat: stringa

Valore predefinito: formato data database

delimiter

Specifica il delimitatore di campo.

Per utilizzare un carattere speciale come delimitatore, specificare il valore HEX del codice ASCII del carattere. Ad esempio, quanto segue specifica il carattere TAB come delimitatore:

format => json_object('delimiter' value 'X''9''')

delimiter: carattere

Valore predefinito | (carattere pipe)

detectfieldorder

Specifica che i campi nei file di dati esterni si trovano in un ordine diverso rispetto alle colonne della tabella. Rileva l'ordine dei campi utilizzando la prima riga di ciascun file di dati esterno e mappalo alle colonne della tabella. I nomi dei campi nei file di dati esterni vengono confrontati senza distinzione tra maiuscole e minuscole con i nomi delle colonne della tabella.

Questa opzione di formato è applicabile alle seguenti procedure:

  • DBMS_CLOUD.COPY_DATA

  • DBMS_CLOUD.CREATE_EXTERNAL_TABLE

  • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE

  • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

Restrizioni per detectfieldorder:

  • I nomi dei campi nel file di dati devono essere visualizzati nella prima riga del record e non devono contenere spazi vuoti tra i nomi dei campi.

  • Il delimitatore di campo nel record dei nomi di campo deve essere uguale al delimitatore di campo per i dati nel file.

  • I nomi dei campi citati non sono supportati. I nomi dei campi nei file di dati vengono confrontati, senza distinzione tra maiuscole e minuscole, con i nomi delle colonne delle tabelle esterne.

  • I delimitatori di campi incorporati non sono consentiti nei nomi dei campi.

  • Il numero di colonne nella tabella deve corrispondere al numero di campi nei file di dati.

  • Questa opzione di formato non è applicabile ai formati Bigdata o Oracle Data Pump, poiché tali formati dispongono di informazioni precise sui metadati delle colonne nel formato file binario.

    I formati di testo, CSV, JSON, Parquet o XML possono trarre vantaggio da questo rilevamento automatico dell'ordine dei campi quando la prima riga contiene i nomi dei campi.

Per ulteriori informazioni, vedere FIELD NAMES in Oracle Database 19c Utilities o Oracle Database 23ai Utilities e la descrizione di ALL FILES.

detectfieldorder: true

Valore predefinito: false

enablelogs

L'opzione di formato enablelogs viene utilizzata con le procedure DBMS_CLOUD riportate di seguito.

  • COPY_DATA

  • COPY_COLLECTION

  • EXPORT_DATA

enablelogs specifica un valore booleano. Se impostato su TRUE, vengono generati i log. Se impostato su FALSE, i log non vengono generati.

Ad esempio:

format => JSON_OBJECT('enablelogs' value FALSE)

enablelogs: false

Valore predefinito: true

encryption

L'opzione di formato encryption specifica le opzioni di cifratura e decifrazione per esportare e importare dati da e verso l'area di memorizzazione degli oggetti.

Usare encryption per specificare i seguenti parametri per la cifratura e la decifrazione:

  • user_defined_function: specifica una funzione completamente qualificata definita dall'utente per decifrare o cifrare il BLOB (binary large object) specificato. Restituisce un oggetto BLOB decifrato o cifrato. user_defined_function si esclude a vicenda con altri parametri per encryption.

    Ad esempio, ADMIN.DECRYPTION_CALLBACK.

  • type: specifica l'algoritmo di cifratura DBMS_CRYPTO da decifrare o cifrare.

    type accetta i valori nel formato Algoritmi di cifratura blocco + Modificatori di concatenamento di cifratura blocco + Modificatori di riempimento di cifratura blocco.

    Gli algoritmi di cifratura dei blocchi supportati sono:

    • DBMS_CRYPTO.ENCRYPT_AES256

    I modificatori di concatenamento di cifratura a blocchi supportati sono:

    • DBMS_CRYPTO.CHAIN_CBC

    • DBMS_CRYPTO.CHAIN_CFB

    • DBMS_CRYPTO.CHAIN_ECB

    • DBMS_CRYPTO.CHAIN_OFB

    I modificatori di riempimento della cifratura dei blocchi supportati sono:

    • DBMS_CRYPTO.PAD_PKCS5

    • DBMS_CRYPTO.PAD_NONE

    • DBMS_CRYPTO.PAD_ZERO

    • DBMS_CRYPTO.PAD_ORCL

  • credential_name: specifica la credenziale utilizzata per memorizzare la chiave di cifratura.

Se non si specificano valori per questi parametri, i valori dei modificatori di concatenamento di cifratura a blocchi e dei modificatori di riempimento di cifratura a blocchi vengono impostati automaticamente su DBMS_CRYPTO.CHAIN_CBC e DBMS_CRYPTO.PAD_PKCS5.

L'opzione di formato encryption viene utilizzata con le procedure DBMS_CLOUD riportate di seguito.

  • Utilizzato per passare i parametri da decifrare per le seguenti procedure:

    • DBMS_CLOUD.COPY_DATA

    • DBMS_CLOUD.CREATE_EXTERNAL_TABLE

    • DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE

    • DBMS_CLOUD.CREATE_HYBRID_PART_TABLE

      Per DBMS_CLOUD.CREATE_HYBRID_PART_TABLE questa opzione è applicabile solo ai file di storage degli oggetti.

    • DBMS_CLOUD.COPY_COLLECTION

  • Utilizzato per passare i parametri per la cifratura di questa procedura:

    • DBMS_CLOUD.EXPORT_DATA

Ad esempio:

format => JSON_OBJECT('encryption' value json_object ('type' value DBMS_CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5, 'credential_name' value 'ENCRYPTION_CRED'))
encryption:value

Il valore Where è una stringa JSON che fornisce parametri aggiuntivi per la cifratura:

type: valore

Specifica il tipo di cifratura.

credential_name: value

Specifica la credenziale utilizzata per memorizzare la chiave di cifratura.

user_defined_function: value

Specifica una funzione completamente qualificata definita dall'utente per decifrare o cifrare il BLOB (binary large object) specificato.

endquote

I dati possono essere racchiusi tra due delimitatori, specificati con quote e endquote. Quando specificato, i caratteri quote e endquote vengono rimossi durante il caricamento.

Ad esempio:

format => JSON_OBJECT('quote' value '(', 'endquote' value ')')

endquote:character

Valore predefinito: Null, ovvero endquote.

escape Il carattere "\" viene utilizzato come carattere di escape quando specificato.

escape : true

Valore predefinito: false

ignoreblanklines

Opzione valida con dati JSON

Le righe vuote vengono ignorate quando sono impostate su true.

ignoreblanklines : true

Valore predefinito: False

ignoremissingcolumns If there are more columns in the field_list than there are in the source files, the extra columns are stored as null.

ignoremissingcolumns : true

Valore predefinito False

jsonpath

Utilizzare solo con COPY_COLLECTION

Percorso JSON per identificare il documento da caricare.

Questa opzione è valida solo per i dati di raccolta JSON con DBMS_CLOUD.COPY_COLLECTION.

jsonpath: stringa

Valore predefinito: Null

`assegnazione chiavi`

Utilizzare solo con `COPY_COLLECTION`

Specifica se una nuova raccolta viene creata come raccolta compatibile con mongo o come raccolta SODA.

Quando il valore è impostato su embedded_oid, una nuova raccolta viene creata come raccolta compatibile con mongo.

Per impostazione predefinita, questo parametro non è impostato, il che significa che una nuova raccolta viene creata come raccolta SODA.

keyassignment: embedded_oid

Impostazione predefinita: keyassignment non impostato

keypath

Utilizzare solo con COPY_COLLECTION

Specifica un attributo nei dati da caricare come valore '_id'.

Se si specifica keypath, è necessario specificare anche il valore keyassignment come embedded_oid.

Impostare il valore su un percorso, ad esempio '$.mykey', per selezionare il valore del percorso come valore '_id'.

Questo parametro è facoltativo ed è valido solo per il caricamento in raccolte compatibili con mongo.

Se non specificato, Oracle genera un ID di sistema univoco a 12 byte e lo inserisce come attributo '_id', se un attributo '_id' non è già presente nei dati in fase di caricamento.

keypath: string

Impostazione predefinita: keypath non è impostato.

Quando keypath è impostato, il valore di stringa predefinito è NULL.

language Specifica il nome di una lingua, ad esempio FRENCH, da cui è possibile recuperare informazioni basate su impostazioni nazionali.

language: stringa

Valore predefinito: Null

Per un elenco delle lingue supportate da Oracle, vedere Locale Data in Oracle Database 19c Database Globalization Support Guide o Oracle Database 23ai Database Globalization Support Guide.

logdir

Specifica un valore stringa che determina il nome dell'oggetto directory in cui vengono salvati i file logfile_table o badfile_table.

Per impostazione predefinita, logdir non fa distinzione tra maiuscole e minuscole, ma viene riservato quando il valore specificato è racchiuso tra virgolette doppie.

Ad esempio:

format => JSON_OBJECT ('logdir' value 'test_log')

L'opzione di formato logdir specificata nell'esempio precedente salva i file logfile_table o badfile_table nell'oggetto directory TEST_LOG.

format => JSON_OBJECT ('logdir' value '"test_log"')

L'opzione di formato logdir specificata nell'esempio precedente salva i file logfile_table o badfile_table nell'oggetto directory test_log.

logdir: stringa

Valore predefinito: DATA_PUMP_DIR

logprefix

Specifica un valore stringa che determina il prefisso per i file logfile_table e badfile_table.

Il formato del nome della tabella di log è: logprefix$operation_id

Per impostazione predefinita, il prefisso di log è in maiuscolo, ma il carattere maiuscolo viene riservato quando il valore specificato è racchiuso tra virgolette doppie.

Ad esempio:

format => JSON_OBJECT ('logprefix' value 'TEST')

I file di log utilizzano quindi il prefisso TEST, ad esempio TEST$2_LOG e TEST$2_BAD.

logprefix: stringa

Valore predefinito: COPY

logretention

Specifica una durata intera positiva, espressa in giorni, per la quale vengono conservati i file logfile_table e badfile_table.

Valori validi: da 0 a 99999

Ad esempio:

format => JSON_OBJECT ('logretention' value 7)

logretention: numero

Valore predefinito: 2

maxdocsize

Questa opzione è valida solo con dati JSON

Dimensione massima dei documenti JSON.

maxdocsize: numero

Valore predefinito: 1 megabyte

Valore massimo consentito: 2 gigabyte

numericcharacters

Specifica i caratteri da utilizzare come separatori delle migliaia e i caratteri decimali.

decimal_character: il separatore dei decimali separa la parte intera di un numero dalla porzione decimale.

group_separator: il separatore di gruppi separa i gruppi di valori intero (ossia, le migliaia, i milioni, i miliardi e così via).

numericcharacters: 'decimal_character group_separator'

Valore predefinito: ".,"

Per ulteriori informazioni, vedere NLS_NUMERIC_CHARACTERSOracle Database 19c Database Globalization Support GuideOracle Database 23ai Database Globalization Support Guide.

numberformat

Specifica il modello di formato numerico. I modelli con formato numerico consentono di arrotondare il numero al numero specificato di cifre significative. Un modello di formato numerico è composto da uno o più elementi di formato numerico.

Utilizzato in combinazione con numericcharacters.

numberformat: number_format_model

Valore predefinito: derivato dall'impostazione del parametro NLS_TERRITORY

Per ulteriori informazioni, vedere Modelli formato numerico in Oracle Database 19c SQL Language Reference o Oracle Database 23ai SQL Language Reference.

partition_columns

L'opzione di formato partition_columns viene utilizzata con DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE per specificare i nomi delle colonne e i tipi di dati delle colonne di partizione quando le colonne di partizione vengono derivate dal percorso del file, a seconda del tipo di file di dati, strutturato o non strutturato:

  • Quando DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE include il parametro column_list e il file di dati non è strutturato, ad esempio con i file di testo CSV, partition_columns non include il tipo di dati. Ad esempio, utilizzare un formato simile al seguente per questo tipo di specifica partition_columns:

    '"partition_columns":["state","zipcode"]'

    Il tipo di dati non è obbligatorio perché è specificato nel parametro DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE column_list.

  • Se DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE non include il parametro column_list e i file di dati sono strutturati, ad esempio i file Avro, ORC o Parquet, l'opzione partition_columns include il tipo di dati. Ad esempio, viene mostrata una specifica partition_columns:

    '"partition_columns":[{"name":"country", "type":"varchar2(10)"}, {"name":"year", "type":"number"}, {"name":"month", "type":"varchar2(10)"}]'

Se i file di dati non sono strutturati e la sottoclausola type è specificata con partition_columns, la sottoclausola type viene ignorata.

Per i nomi oggetto non basati sul formato hive, l'ordine delle colonne partition_columns specificate deve corrispondere all'ordine in cui sono visualizzate nel nome oggetto in file_uri_list.

 
quote Specifica il carattere di virgolette per i campi, i caratteri quote vengono rimossi durante il caricamento quando specificato.

quote: carattere

Valore predefinito: nullo indica assenza di virgolette

recorddelimiter

Opzione valida con dati JSON

Specifica il delimitatore di record.

Per impostazione predefinita, DBMS_CLOUD tenta di trovare automaticamente come delimitatore il carattere di nuova riga corretto. Prima cerca nel file il carattere di nuova riga di Windows "\r\n". 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 newline di Windows, cerca il carattere newline UNIX/Linux "\n" e se ne trova uno utilizza "\n" come delimitatore di record per tutti i file nella procedura.

Specificare questo argomento in modo esplicito se si desidera eseguire l'override del funzionamento predefinito, ad esempio:

format => json_object('recorddelimiter' VALUE '''\r\n''')

Per indicare che non esiste un delimitatore di record, è possibile specificare un valore recorddelimiter che non sia presente nel file di input. Ad esempio, per indicare che non esiste un delimitatore, specificare il carattere di controllo 0x01 (SOH) come valore per recorddelimiter e impostare il valore recorddelimiter su "0x''01''" (questo carattere non è presente nel testo JSON). Ad esempio:

format => '{"recorddelimiter" : "0x''01''"}'

recorddelimiter viene impostato una volta per chiamata di procedura. Se si utilizza il valore predefinito detected newline, tutti i file utilizzano lo stesso delimitatore di record, se ne viene rilevato uno.

recorddelimiter: carattere

Valore predefinito: newline rilevato

regexuri

L'opzione di formato regexuri viene utilizzata con le seguenti procedure DBMS_CLOUD:

  • COPY_COLLECTION

  • COPY_DATA

  • CREATE_EXTERNAL_TABLE

  • CREATE_EXTERNAL_PART_TABLE

  • CREATE_HYBRID_PART_TABLE

Quando il valore di regexuri è impostato su TRUE, è possibile utilizzare i caratteri jolly e le espressioni regolari nei nomi dei file negli URI dei file di origine cloud.

I caratteri "*" e "?" sono considerati caratteri jolly quando il parametro regexuri è impostato su FALSE. Se il parametro regexuri è impostato su TRUE, i caratteri "*" e "?" fanno parte del pattern di espressione regolare specificato.

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 REGEXP_LIKE. I pattern di espressione regolare non sono supportati per i nomi delle directory.

Per le tabelle esterne, questa opzione è supportata solo con le tabelle create in un file nello storage degli oggetti.

Ad esempio:

format => JSON_OBJECT('regexuri' value TRUE)

Per ulteriori informazioni sulla condizione REGEXP_LIKE, vedere REGEXP_LIKE Condition in Oracle Database 19c SQL Language Reference o Oracle Database 23ai SQL Language Reference.

regexuri: True

Valore predefinito: False

rejectlimit L'operazione restituirà un errore dopo il rifiuto del numero di righe specificato.

rejectlimit: numero

Valore predefinito: 0

removequotes Rimuove tutte le virgolette che racchiudono qualsiasi campo nel file di origine.

removequotes: true

Valore predefinito: False

skipheaders Specifica quante righe devono essere saltate dall'inizio del file.

skipheaders: numero

Valore predefinito: 0 se non specificato, 1 se specificato senza un valore

territory Specifica un nome di area per determinare ulteriormente le caratteristiche dei dati di input.

territory: stringa

Valore predefinito: Null

Per un elenco delle lingue supportate da Oracle, vedere Locale Data in Oracle Database 19c Database Globalization Support Guide o Oracle Database 23ai Database Globalization Support Guide.

timestampformat

Specifica il formato dell'indicatore orario nel file di origine. L'opzione di formato AUTO cerca i seguenti formati:

YYYY-MM-DD HH:MI:SS.FF
YYYY-MM-DD HH:MI:SS.FF3
YYYY-MM-DD HH24:MI:SS.FF3
MM/DD/YYYY HH:MI:SS.FF3

timestampformat: stringa

Valore predefinito: formato indicatore orario database

La stringa può contenere caratteri jolly, ad esempio "$".

timestampltzformat

Specifica l'indicatore orario con formato fuso orario locale nel file di origine. L'opzione di formato AUTO cerca i seguenti formati:

DD Mon YYYY HH:MI:SS.FF TZR
MM/DD/YYYY HH:MI:SS.FF TZR
YYYY-MM-DD HH:MI:SS+/-TZR
YYYY-MM-DD HH:MI:SS.FF3
DD.MM.YYYY HH:MI:SS TZR

timestampltzformat: stringa

Valore predefinito: indicatore orario del database con formato fuso orario locale

timestamptzformat

Specifica l'indicatore orario con formato fuso orario nel file di origine. L'opzione di formato AUTO cerca i seguenti formati:

DD Mon YYYY HH:MI:SS.FF TZR  MM/DD/YYYY HH:MI:SS.FF TZR  YYYY-MM-DD HH:MI:SS+/-TZR  YYYY-MM-DD HH:MI:SS.FF3  DD.MM.YYYY HH:MI:SS TZR

timestamptzformat: stringa

Valore predefinito: indicatore orario del database con formato fuso orario

trimspaces

Specifica la modalità per la rimozione degli spazi iniziali e finali del campo.

Vedere la descrizione di trim_spec in Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

trimspaces: rtrim| ltrim| notrim| lrtrim| ldrtrim

Valore predefinito: notrim

truncatecol Se i dati nel file sono troppi lunghi per un campo, questa opzione troncherà il valore del campo invece di rifiutare la riga.

truncatecol:true

Valore predefinito: False

type

Specifica il tipo di file di origine.

Consulta la descrizione di CSV in Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

Se type è datapump, l'unica altra opzione di formato valida è rejectlimit.

Se type è datapump, gli unici aree di memorizzazione degli oggetti supportati sono Oracle Cloud Infrastructure Object Storage e Oracle Cloud Infrastructure Object Storage Classic.

Vedere DBMS_CLOUD Package Format Options for Avro, ORC, or Parquet per i valori type avro, orc o parquet.

Per i dati JSON con DBMS_CLOUD.COPY_COLLECTION type sono disponibili due valori validi: json (impostazione predefinita) e ejson. Per DBMS_CLOUD.COPY_COLLECTION questi valori specificano entrambi che l'input è dato JSON. Il valore ejson fa sì che gli oggetti estesi nei dati di input JSON testuali vengano convertiti in valori JSON scalari nella raccolta JSON binaria nativa. Il valore json non esegue questa trasformazione e tutti gli oggetti nei dati di input vengono convertiti in formato JSON binario.

Per i dati JSON con DBMS_CLOUD.COPY_DATA type è presente un valore valido: json. Questo valore specifica che l'input è dato JSON.

type: csv | csv with embedded | csv without embedded | avro | datapump| orc | parquet

Nota: non tutte le procedure DBMS_CLOUD supportano tutti questi tipi.

csv è uguale a csv without embedded.

Valore predefinito: Null

Per i dati JSON sono disponibili due valori type validi da utilizzare con DBMS_CLOUD.COPY_COLLECTION: json|ejson. In questo caso, il valore predefinito è json. Per i dati JSON con DBMS_CLOUD.COPY_DATA, è valido solo json.

unpackarrays

Utilizzare solo con COPY_COLLECTION

Quando è impostato su true, se un documento caricato è un array, il contenuto dell'array viene caricato come documenti anziché come array stesso. Questo vale solo per l'array di livello superiore.

Se impostato su true, l'intero array viene inserito come un singolo documento.

Questa opzione è valida solo per i dati di raccolta JSON con DBMS_CLOUD.COPY_COLLECTION.

unpackarrays: true

Valore predefinito: False

Contenuto correlato