DBMS_CLOUD Package di tipo di dati Oracle in mapping 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
NUMERO(p,s) DECIMAL(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) STRINGA

Parametri sessione NLS

I parametri di 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 radix per l'indicatore orario con 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 caratteri anno).

La maschera di formato RR per l'anno non è supportata per questi parametri quando si esportano i dati in Parquet con DBMS_CLOUD.EXPORT_DATA. Viene generato un errore dell'applicazione se si tenta di eseguire l'esportazione in parquet e NLS_SESSION_PARAMETERS viene impostato per utilizzare la maschera di formato RR (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 NLS_DATE_FORMAT è impostato, viene applicato alle colonne con tipo di dati DATE. Se NLS_TIMESTAMP_FORMAT è impostato, viene applicato alle colonne con tipo di dati TIMESTAMP. Se NLS_TIMESTAMP_TZ_FORMAT è impostato, viene applicato alle colonne con tipo di dati TIMESTAMP WITH TIME ZONE.

Per ulteriori informazioni, vedere Parametri di data e ora e Viste dizionario dati NLS.