Mise en correspondance de types de données Oracle avec des types de données Parquet pour le package DBMS_CLOUD

Décrit la correspondance entre les types de données Oracle et Parquet.

Type Oracle Type de parquet Type de flèche Apache
BINARY_DOUBLE DBL DOUBLE
BINARY_FLOAT DBL DOUBLE
DATE TIMESTAMP_MILLIS TIMESTAMP[MS]
NUMBER(p,s) DBL DOUBLE
NUMBER(p); p<19 DECIMAL(p) INT64
NUMBER(p); p>19 DBL DOUBLE
TIMESTAMP(3) TIMESTAMP_MILLIS TIMESTAMP[MS]
TIMESTAMP(6) TIMESTAMP_MICROS TIMESTAMP[US]
TIMESTAMP(9) TIMESTAMP_NANOS TIMESTAMP[NS]
TIMESTAMP(3) WITH LOCAL TIME ZONE TIMESTAMP_MILLIS TIMESTAMP[MS]
TIMESTAMP(6) WITH LOCAL TIME ZONE TIMESTAMP_MICROS TIMESTAMP[US]
TIMESTAMP(9) WITH LOCAL TIME ZONE TIMESTAMP_NANOS TIMESTAMP[NS]
TIMESTAMP(3) WITH TIME ZONE TIMESTAMP_MILLIS TIMESTAMP[MS]
TIMESTAMP(6) WITH TIME ZONE TIMESTAMP_MICROS TIMESTAMP[US]
TIMESTAMP(9) WITH TIME ZONE TIMESTAMP_NANOS TIMESTAMP[NS]
VARCHAR2(4000) STRING STRING/LARGE_STRING

Paramètres de session NLS

Les paramètres de session NLS NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMAT et NLS_NUMERIC_CHARACTERS définissent la façon dont la date, l'horodatage, l'horodatage avec le format de fuseau horaire et le séparateur radix pour l'horodatage avec un marqueur décimal doivent être affichés lorsqu'une table avec ces types de colonne est interrogée.

En outre, lorsque vous exportez des données à l'aide de DBMS_CLOUD.EXPORT_DATA et que vous indiquez une sortie Parquet, Autonomous AI Database lit les valeurs de ces paramètres à partir de la table NLS_SESSION_PARAMETERS. Autonomous AI Database utilise ces valeurs pour convertir les types de données Oracle DATE, TIMESTAMP ou TIMESTAMP WITH TIME ZONE en types Parquet.

Les paramètres NLS_SESSION_PARAMETERS prennent en charge un masque de format RR (spécification à deux caractères par an).

Le masque de format RR pour l'année n'est pas pris en charge pour ces paramètres lorsque vous exportez des données vers Parquet avec DBMS_CLOUD.EXPORT_DATA. Une erreur d'application est générée si vous tentez d'exporter vers le parquet et que NLS_SESSION_PARAMETERS est défini pour utiliser le masque de format RR (la valeur par défaut pour le format RR dépend de la valeur du paramètre NLS_TERRITORY).

Lorsque l'un des paramètres NLS_DATE_FORMAT, NLS_TIMESTAMP_FORMAT ou NLS_TIMESTAMP_TZ_FORMAT utilise le masque de format RR, vous devez remplacer la valeur de format par la valeur prise en charge pour exporter les données vers Parquet avec DBMS_CLOUD.EXPORT_DATA. Par exemple :

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';

Après avoir modifié la valeur, vous pouvez vérifier la modification en interrogeant la vue NLS_SESSION_PARAMETERS :

SELECT value FROM NLS_SESSION_PARAMETERS
       WHERE parameter IN ('NLS_DATE_FORMAT','NLS_TIMESTAMP_FORMAT','NLS_TIMESTAMP_TZ_FORMAT');

Si NLS_DATE_FORMAT est défini, il s'applique aux colonnes avec le type de données DATE. Si NLS_TIMESTAMP_FORMAT est défini, il s'applique aux colonnes avec le type de données TIMESTAMP. Si NLS_TIMESTAMP_TZ_FORMAT est défini, il s'applique aux colonnes avec le type de données TIMESTAMP WITH TIME ZONE.

Pour plus d'informations, reportez-vous à Paramètres de date et d'heure et à Vues du dictionnaire de données NLS.