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 Oracle Tipo di parquet
BINARY_DOUBLE DBL
BINARY_FLOAT FLT
DATE DATE
NUMBER(p,s) DECIMALE(p,s)
NUMERO(p) DECIMALE(p)
INDICATORE ORARIO(3) TIMESTAMP_MILLIS
INDICATORE ORARIO(3) TIMESTAMP_MILLIS_UTC
INDICATORE ORARIO(6) TIMESTAMP_MICROS
INDICATORE ORARIO(6) TIMESTAMP_MICROS_UTC
INDICATORE ORARIO(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 e Viste del dizionario dati NLS.