DBMS_CLOUD Asignación de tipo de datos de Oracle a Parquet en el paquete

Describe la asignación de tipos de dato de Oracle a tipos de dato de Parquet.

Type Oracle Tipo de Parquet
BINARY_DOUBLE DBL
BINARY_FLOAT FLT
DATE DATE
NUMBER(p,s) DECIMAL(p,s)
NÚMERO(p) DECIMAL(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

Parámetros de sesión NLS

Los parámetros de sesión de NLS NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMAT y NLS_NUMERIC_CHARACTERS definen cómo se debe mostrar la fecha, el registro de hora, el registro de hora con formato de zona horaria y el separador de radix para el registro de hora con marcador decimal cuando se consulta una tabla con esos tipos de columna.

Además, al exportar datos mediante DBMS_CLOUD.EXPORT_DATA y especificar la salida de Parquet, Autonomous Database lee los valores de estos parámetros de la tabla NLS_SESSION_PARAMETERS. Autonomous Database utiliza estos valores para convertir los tipos de datos de Oracle DATE o TIMESTAMP en tipos de Parquet.

Los parámetros NLS_SESSION_PARAMETERS soportan una máscara de formato RR (especificación de año de dos caracteres).

La máscara de formato RR para el año no está soportada para estos parámetros al exportar datos a Parquet con DBMS_CLOUD.EXPORT_DATA. Se produce un error de aplicación si intenta exportar a parquet y NLS_SESSION_PARAMETERS se define para utilizar la máscara de formato RR (el valor por defecto para el formato RR depende del valor del parámetro NLS_TERRITORY).

Cuando uno de los parámetros NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT o NLS_TIMESTAMP_TZ_FORMAT utiliza la máscara de formato RR, debe cambiar el valor de formato al valor soportado para exportar datos a Parquet con DBMS_CLOUD.EXPORT_DATA. Por ejemplo:

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';
Después de cambiar el valor, puede verificar el cambio consultando la vista NLS_SESSION_PARAMETERS:
SELECT value FROM NLS_SESSION_PARAMETERS 
       WHERE parameter IN ('NLS_DATE_FORMAT','NLS_TIMESTAMP_FORMAT','NLS_TIMESTAMP_TZ_FORMAT');

Si se define NLS_DATE_FORMAT, se aplica a las columnas con el tipo de dato DATE. Si se define NLS_TIMESTAMP_FORMAT, se aplica a las columnas con el tipo de dato TIMESTAMP. Si se define NLS_TIMESTAMP_TZ_FORMAT, se aplica a las columnas con el tipo de dato TIMESTAMP WITH TIME ZONE.

Consulte Parámetros de Fecha y Hora y Vistas del Diccionario de Datos de NLS para obtener más información.