DBMS_CLOUD Supporto per Avro, ORC e Parquet

In questa sezione viene descritto il supporto DBMS_CLOUD Avro, ORC e Parquet fornito con Autonomous Database.

DBMS_CLOUD Opzioni formato package per Avro, ORC o Parquet

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” }'  

E:

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 un ",".

Ad esempio:

format => json_object('ignoremissingcolumns' value 'true', 'removequotes' value 'true', 'dateformat' value 'YYYY-MM-DD-HH24-MI-SS', 'blankasnull' value 'true')
Opzione di formato Descrizione Sintassi

regexuri

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

I caratteri "*" e "?" vengono considerati caratteri jolly quando il parametro regexuri è impostato su FALSE. Quando il parametro regexuri è impostato su TRUE, i caratteri "*" e "?" fanno parte del pattern di espressioni regolari specificato.

I pattern di espressioni regolari sono supportati solo per il nome file o il percorso della sottocartella negli URI e la corrispondenza del pattern è identica a quella eseguita dalla funzione REGEXP_LIKE. I pattern di espressione regolare non sono supportati per i nomi di directory.

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

Ad esempio:

format => JSON_OBJECT('regexuri' value TRUE)

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

regexuri: True

Valore predefinito:False

type

Specifica il tipo di file.

type : avro | orc | parquet

schema

Quando lo schema è impostato su first o all, le colonne e i tipi di dati della tabella esterna vengono derivati automaticamente dai metadati del file Avro, ORC o Parquet.

I nomi delle colonne corrispondono a quelli trovati in Avro, ORC o Parquet. I tipi di dati vengono convertiti da tipi di dati Avro, ORC o Parquet a tipi di dati Oracle. Tutte le colonne vengono aggiunte alla tabella.

Il valore first specifica di utilizzare i metadati del primo file Avro, ORC o Parquet nel file file_uri_list per generare automaticamente le colonne e i relativi tipi di dati. Utilizzare first se tutti i file hanno lo stesso schema.

Il valore all specifica di utilizzare i metadati di tutti i file Avro, ORC o Parquet nel file file_uri_list per generare automaticamente le colonne e i relativi tipi di dati. Utilizzare all (più lento) se i file possono avere schemi diversi.

Predefinito: se si specifica column_list, il valore schema, se specificato, viene ignorato. Se column_list non viene specificato, il valore predefinito schema è first.

Nota: per i file in formato Avro, ORC o Parquet l'opzione di formato schema non è disponibile e il parametro column_list deve essere specificato per le tabelle esterne partizionate utilizzando la procedura DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE.

schema : first | all

DBMS_CLOUD Package Avro - Mapping tipo dati Oracle

Descrive il mapping dei tipi di dati Avro ai tipi di dati Oracle.

Nota

I tipi complessi, quali mappe, array e strutture, sono supportati a partire da Oracle Database 19c. Per informazioni sull'utilizzo dei tipi complessi Avro, vedere DBMS_CLOUD Tipi di package Avro, ORC e Parquet Complex.
Tipo Avro Tipo specifico Oracle
INT NUMBER(10)
LONG NUMERO (19)
SCATOLA NUMERO (1)
UTF8 BYTE_ARRAY RAW(2000)
FLT BINARY_FLOAT
DBL BINARY_DOUBLE
DECIMALE(p) NUMERO(p)
DECIMALE(p,s) NUMBER(p,s)
DATE DATE
STRING VARCHAR2
TIME_MILLIS VARCHAR2(20 BYTE)
TIME_MICROS VARCHAR2(20 BYTE)
TIMESTAMP_MILLIS TIMESTAMP(3)
TIMESTAMP_MICROS TIMESTAMP(6)
ENUM VARCHAR2(n) Dove: "n" rappresenta la lunghezza massima effettiva dei valori possibili di AVRO ENUM.
DURATION RAW(2000)
FISSO RAW(2000)
NULL VARCHAR2(1) BYTE

Per informazioni sull'utilizzo dei tipi complessi Avro, vedere DBMS_CLOUD Tipi di package Avro, ORC e Parquet Complex.

DBMS_CLOUD Package ORC - Mapping tipo dati Oracle

Descrive il mapping dei tipi di dati ORC ai tipi di dati Oracle.

Per informazioni sull'utilizzo dei tipi complessi ORC, vedere DBMS_CLOUD Package Avro, ORC e Parquet Complex Types.

Tipo ORC Tipo specifico Oracle Ulteriori informazioni
array VARCHAR2(n) Formato JSON DBMS_CLOUD Tipi complessi di pacchetti Avro, ORC e Parquet
bigint (64 bit) NUMERO (19)  
binario BLOB  
booleano (1 bit) NUMERO (1)  
char CARICA(n)  
data DATE  
double BINARY_DOUBLE  
float BINARY_FLOAT  
int (32 bit) NUMBER(10)  
list VARCHAR2(n) Formato JSON DBMS_CLOUD Tipi complessi di pacchetti Avro, ORC e Parquet
mappa VARCHAR2(n) Formato JSON DBMS_CLOUD Tipi complessi di pacchetti Avro, ORC e Parquet
smallint (16 bit) NUMERO (5)  
stringa VARCHAR2(4000)  
struct VARCHAR2(n) Formato JSON DBMS_CLOUD Tipi complessi di pacchetti Avro, ORC e Parquet
Indicatore orario TIMESTAMP  
minuscolo (8 bit) NUMERO (3)  
union VARCHAR2(n) Formato JSON DBMS_CLOUD Tipi complessi di pacchetti Avro, ORC e Parquet
varchar VARCHAR2(n)  

Mapping tra pacchetti DBMS_CLOUD e tipi di dati Oracle

Descrive il mapping dei tipi di dati Parquet ai tipi di dati Oracle.

Nota

I tipi complessi, quali mappe, array e strutture, sono supportati a partire da Oracle Database 19c. Per informazioni sull'utilizzo dei tipi complessi Parquet, vedere DBMS_CLOUD Tipi di package Avro, ORC e Parquet Complex.
Tipo di parquet Tipo specifico Oracle
UINT_64 NUMERO (20)
INT_64 NUMERO (19)
UINT_32 NUMBER(10)
INT_32 NUMBER(10)
UINT_16 NUMERO (5)
INT_16 NUMERO (5)
UINT_8 NUMERO (3)
INT_8 NUMERO (3)
SCATOLA NUMERO (1)
UTF8 BYTE_ARRAY VARCHAR2(4000 BYTE)
FLT BINARY_FLOAT
DBL BINARY_DOUBLE
DECIMALE(p) NUMERO(p)
DECIMALE(p,s) NUMBER(p,s)
DATE DATE
STRING VARCHAR2(4000)
TIME_MILLIS VARCHAR2(20 BYTE)
TIME_MILLIS_UTC VARCHAR2(20 BYTE)
TIME_MICROS VARCHAR2(20 BYTE)
TIME_MICROS_UTC VARCHAR2(20 BYTE)
TIMESTAMP_MILLIS TIMESTAMP(3)
TIMESTAMP_MILLIS_UTC TIMESTAMP(3)
TIMESTAMP_MICROS TIMESTAMP(6)
TIMESTAMP_MICROS_UTC TIMESTAMP(6)
TIMESTAMP_NANOS TIMESTAMP(9)

Per informazioni sull'utilizzo dei tipi complessi Parquet, vedere DBMS_CLOUD Tipi di package Avro, ORC e Parquet Complex.

DBMS_CLOUD Package di mapping tra tipo di dati Oracle e parquet

Descrive il mapping dei tipi di dati Oracle ai tipi di dati Parquet.

Tipo specifico Oracle Tipo di parquet
BINARY_DOUBLE DBL
BINARY_FLOAT FLT
DATE DATE
NUMBER(p,s) DECIMALE(p,s)
NUMERO(p) DECIMALE(p)
TIMESTAMP(3) TIMESTAMP_MILLIS
TIMESTAMP(3) TIMESTAMP_MILLIS_UTC
TIMESTAMP(6) TIMESTAMP_MICROS
TIMESTAMP(6) TIMESTAMP_MICROS_UTC
TIMESTAMP(9) TIMESTAMP_NANOS
VARCHAR2(4000) STRING

Parametri sessione NLS

I parametri della sessione NLS NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMAT e NLS_NUMERIC_CHARACTERS definiscono il modo in cui la data, l'indicatore orario, l'indicatore orario con il formato del fuso orario e il separatore del raggio per l'indicatore orario con l'indicatore decimale devono essere visualizzati quando viene eseguita una query su una tabella con tali tipi di colonna.

Inoltre, quando si esportano i dati utilizzando DBMS_CLOUD.EXPORT_DATA e si specifica l'output Parquet, Autonomous Database legge i valori di questi parametri dalla tabella NLS_SESSION_PARAMETERS. Autonomous Database utilizza questi valori per convertire i tipi di dati Oracle DATE o TIMESTAMP in tipi Parquet.

I parametri NLS_SESSION_PARAMETERS supportano una maschera di formato RR (specifica di due anni di caratteri).

La maschera di formato RR per l'anno non è supportata per questi parametri quando si esportano dati in Parquet con DBMS_CLOUD.EXPORT_DATA. Se si tenta di eseguire l'esportazione in parquet e NLS_SESSION_PARAMETERS è impostato per utilizzare la maschera di formato RR, viene generato un errore dell'applicazione. Il valore predefinito per il formato RR dipende dal valore del parametro NLS_TERRITORY.

Quando uno dei parametri NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT o NLS_TIMESTAMP_TZ_FORMAT utilizza la maschera di formato RR, è necessario modificare il valore del formato in valore supportato per esportare i dati in Parquet con DBMS_CLOUD.EXPORT_DATA. Ad esempio:

ALTER SESSION SET NLS_DATE_FORMAT = "MM/DD/YYYY";
ALTER SESSION SET NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH:MI:SS.FF';
ALTER SESSION SET  NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH:MI:SS.FF TZH:TZM';
Dopo aver modificato il valore, è possibile verificare la modifica eseguendo una query sulla vista NLS_SESSION_PARAMETERS.
SELECT value FROM NLS_SESSION_PARAMETERS 
       WHERE parameter IN ('NLS_DATE_FORMAT','NLS_TIMESTAMP_FORMAT','NLS_TIMESTAMP_TZ_FORMAT');

Se è impostato NLS_DATE_FORMAT, si applica alle colonne con tipo di dati DATE. Se è impostato NLS_TIMESTAMP_FORMAT, si applica alle colonne con il tipo di dati TIMESTAMP. Se è impostato NLS_TIMESTAMP_TZ_FORMAT, si applica alle colonne con tipo di dati TIMESTAMP WITH TIME ZONE.

Per ulteriori informazioni, vedere Parametri di data e ora in Oracle Database 19c Database Globalization Support Guide o Oracle Database 23ai Database Globalization Support Guide e NLS Data Dictionary Views nel manuale Oracle Database 19c Database Globalization Support Guide o Oracle Database 23ai Database Globalization Support Guide.

DBMS_CLOUD Tipi complessi di package Avro, ORC e Parquet

Descrive il mapping dei tipi di dati complessi Avro, ORC e Parquet ai tipi di dati Oracle.

Autonomous Database supporta tipi di dati complessi, inclusi i seguenti tipi complessi:

  • struct

  • list

  • mappa

  • union

  • array

Quando si specifica un tipo di file di origine Avro, ORC o Parquet e il file di origine include colonne complesse, le query di Autonomous Database restituiscono JSON per le colonne complesse. Ciò semplifica l'elaborazione dei risultati delle query; puoi utilizzare le potenti funzioni di analisi JSON di Oracle in modo coerente tra i tipi di file e i tipi di dati. La tabella riportata di seguito mostra il formato per i tipi complessi in Autonomous Database.

Nota

I campi complessi vengono mappati alle colonne VARCHAR2 e vengono applicati i limiti di dimensione VARCHAR2.
Type Parquet ORC Avro Oracle
Lista: sequenza di valori List List Array VARCHAR2 (formato JSON)
Mappa: lista di oggetti con chiave singola Mappa Mappa Mappa VARCHAR2 (formato JSON)
Unione: valori di tipo diverso Non disponibile UNION UNION VARCHAR2 (formato JSON)
Oggetto: zero o più coppie chiave-valore Struttura Struttura Record VARCHAR2 (formato JSON)

Se i file di origine ORC, Parquet o Avro contengono tipi complessi, è possibile eseguire una query sull'output JSON per questi tipi complessi comuni. Ad esempio, quanto segue mostra un file ORC, movie-info.orc, con un tipo complesso (lo stesso tipo complesso di gestione si applica per i file di origine Parquet e Avro).

Si consideri il file movie-info.orc con lo schema seguente:

id    int
original_title string
overview       string
poster_path    string
release_date   string
vote_count     int
runtime        int
popularity     double
genres         array<struct<id:int,name:string>

Si noti che ogni filmato viene classificato da più genres utilizzando un array di genres. L'array genres è un valore array di structs e ogni elemento ha un valore id (int) e un valore name (string). L'array genres è considerato un tipo complesso. È possibile creare una tabella su questo file ORC utilizzando DBMS_CLOUD.CREATE_EXTERNAL_TABLE come indicato di seguito.

BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
        table_name =>'movie_info',
        credential_name =>'OBJ_STORE_CRED',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/mytenancy/b/movies/o/movie-info.orc',
        format => '{"type":"orc", "schema": "first"}');
END;
/

Quando si crea la tabella esterna, il database genera automaticamente le colonne in base allo schema nel file ORC (se si utilizza Avro o Parquet, si applica lo stesso). In questo esempio, DBMS_CLOUD.CREATE_EXTERNAL_TABLE crea una tabella nel database come indicato di seguito.

CREATE TABLE "ADMIN"."MOVIE_INFO" 
    ( "ID"
      NUMBER(10,0), 
      "ORIGINAL_TITLE"  VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP", 
      "OVERVIEW"        VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP", 
      "POSTER_PATH"     VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP", 
      "RELEASE_DATE"    VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP", 
      "VOTE_COUNT"      NUMBER(10,0), 
      "RUNTIME"         NUMBER(10,0), 
      "POPULARITY"      BINARY_DOUBLE, 
      "GENRES"          VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP"
    )  DEFAULT COLLATION "USING_NLS_COMP"
    ORGANIZATION EXTERNAL 
     ( TYPE      ORACLE_BIGDATA
       DEFAULT DIRECTORY "DATA_PUMP_DIR"
       ACCESS PARAMETERS
       ( com.oracle.bigdata.credential.name=OBJ_STORE_CRED
         com.oracle.bigdata.fileformat=ORC
   )
       LOCATION
        (
      'https://objectstorage.us-phoenix-1.oraclecloud.com/n/mytenancy/b/movies/o/movie-info.orc'
           )
     )
   REJECT LIMIT UNLIMITED 
   PARALLEL;
 )

Ora è possibile eseguire una query sui dati del filmato:

SELECT original_title, release_date, genres 
     FROM movie_info 
     WHERE release_date > '2000'
     ORDER BY original_title;

Viene prodotto l'output seguente:


original_title              release_date   genres
(500) Days of Summer        2009           [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},{"id":17,"name":"Horror"},{"id":19,"name":"Western"},{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
10,000 BC                   2008           [{"id":6,"name":"Comedy"}]
11:14                       2003           [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
127 Hours                   2010           [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
13 Going on 30              2004           [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
1408                        2007           [{"id":45,"name":"Sci-Fi"},{"id":6,"name":"Comedy"},{"id":17,"name":"Horror"},{"id":6,"name":"Comedy"},{"id":18,"name":"War"}]

Si noti che il tipo complesso genres viene restituito come array JSON.

Per rendere più utili i dati JSON, è possibile trasformare la colonna utilizzando le funzioni JSON di Oracle. Ad esempio, è possibile utilizzare la notazione "." JSON e le funzioni di trasformazione più potenti come JSON_TABLE.

Per informazioni sulla notazione ".", vedere Simple Dot-Notation Access to JSON Data in Oracle Database 19c JSON Developer's Guide o Oracle Database 23ai JSON Developer's Guide.

Per informazioni su JSON_TABLE, vedere Funzione SQL/JSON JSON_TABLE in Oracle Database 19c JSON Developer's Guide o Oracle Database 23ai JSON Developer's Guide.

Nell'esempio riportato di seguito viene illustrata una query sulla tabella che acquisisce ogni valore dell'array e trasforma il valore in una riga nel set di risultati.
SELECT original_title, release_date, m.genre_name, genres
    FROM movie_info mi,
       JSON_TABLE(mi.genres, '$.name[*]'
        COLUMNS (genre_name VARCHAR2(25) PATH
      '$')                 
                 ) AS m
 WHERE rownum < 10;

Il valore JSON_TABLE crea una riga per ogni valore dell'array, pensa all'outer join e la struttura viene analizzata per estrarre il nome del genere. Viene prodotto l'output seguente:


original_title                   release_date         genre_name        genres
(500) Days of Summer             2009                 Drama             [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 Comedy            [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 Horror            [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 Western           [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 War               [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer             2009                 Romance           [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
                                                                        {"id":17,"name":"Horror"},{"id":19,"name":"Western"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
10,000 BC                        2008                 Comedy            [{"id":6,"name":"Comedy"}]
11:14                            2003                 Family            [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
11:14                            2003                 Thriller          [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
127 Hours                        2010                 Comedy            [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
127 Hours                        2010                 Drama             [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
13 Going on 30                   2004                 Romance           [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30                   2004                 Comedy            [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30                   2004                 War               [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30                   2004                 Drama             [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
                                                                        {"id":18,"name":"War"},{"id":15,"name":"Romance"}]

DBMS_CLOUD Mapping tra package Avro, ORC e parquet e nome colonna Oracle

Descrive le regole per la conversione dei nomi di colonna Avro, ORC e Parquet in nomi di colonna Oracle.

Sono supportati i nomi di colonna Avro, ORC e Parquet, ma potrebbero essere necessarie virgolette doppie per i riferimenti a Oracle SQL in tabelle esterne. Pertanto, per facilitare l'utilizzo e per evitare di dover utilizzare le virgolette doppie quando si fa riferimento ai nomi di colonna, se possibile non utilizzare quanto segue nei nomi di colonna Avro, ORC e Parquet:

  • Spazi vuoti incorporati

  • Numeri principali

  • Primi caratteri di sottolineatura

  • Parole riservate di Oracle SQL

La tabella seguente mostra vari tipi di nomi di colonna Avro, ORC e Parquet e regole per l'utilizzo dei nomi di colonna nei nomi di colonna Oracle nelle tabelle esterne.

Nome Avro, ORC o parquet CREA nome tabella CATALOGO Oracle SQL valido Note
parte, parte o parte parte, parte, parte PARTE

select part

select Part

select paRt

select PART

Nomi di colonne senza virgolette in maiuscolo Oracle implicitamente
N. ordine "N. ordine" N. ordine select "Ord No" Le virgolette doppie sono obbligatorie quando sono presenti spazi vuoti incorporati, che conservano anche il caso del carattere
__index_key__ "__index_key__" __index_key__ select "__index_key__" Le virgolette doppie sono obbligatorie quando è presente un carattere di sottolineatura iniziale, che conserva anche il caso del carattere
6Way "6Way" 6Way select "6Way" Le virgolette sono obbligatorie quando è presente una cifra numerica iniziale, che conserva anche il carattere maiuscolo/minuscolo
creare, creare o creare e così via. (ogni variazione di caso) partizione, partizione, partizione e così via (per una parola riservata Oracle) "CREA" "PARTIZIONE" CREA PARTIZIONE

select "CREATE"

select "PARTITION"

Per le parole riservate di Oracle SQL sono necessarie virgolette doppie. Questi sono forzati a maiuscole, ma devono sempre essere racchiusi tra virgolette doppie quando vengono utilizzati in qualsiasi punto di SQL
ID riga, ID riga, ROWid e così via (per ROWID vedere le note) idriga  

select "rowid"

select "Rowid"

select "ROWid"

select "rowid"

Per ROWID, qualsiasi variazione mista o minuscola di ROWID conserva la custodia e deve essere sempre doppiamente citata e utilizzare le varianti originali della custodia. A causa del conflitto intrinseco con Oracle ROWID per la tabella, se si specifica il valore ROWID maiuscolo, viene automaticamente memorizzato come "ROWID" minuscolo e deve essere sempre racchiuso tra virgolette quando viene fatto riferimento.

Note

  • In generale, è possibile fare riferimento a un nome di colonna in una tabella esterna senza virgolette doppie.

  • A meno che non sia presente un carattere vuoto incorporato, un carattere di sottolineatura iniziale ("_") o una cifra numerica iniziale ("da 0" a "9") nel nome della colonna, il caso originale del nome della colonna viene conservato e deve sempre essere fatto riferimento con le virgolette doppie e utilizzando il caso originale (maiuscolo, minuscolo o misto) del nome della colonna Avro, ORC o Parquet.

  • Dopo aver utilizzato DBMS_CLOUD.CREATE_EXTERNAL_TABLE per creare una tabella esterna con il formato specificato come avro, orc o parquet, utilizzare il comando DESCRIBE in SQL*Plus per visualizzare i nomi delle colonne della tabella.

  • Quando si utilizzano parole riservate Oracle SQL nei nomi di colonna Avro, ORC o Parquet, è necessario che vengano sempre citate due volte quando vi viene fatto riferimento in qualsiasi punto di SQL. Per ulteriori informazioni, vedere Parole riservate di Oracle SQL in Oracle Database 23ai SQL Language Reference o Oracle Database 23ai SQL Language Reference.