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
BINARY_DOUBLE Liste de distribution pour les messages
BINARY_FLOAT FLT
DATE DATE
NUMERO(p,s) DÉCIMAL(p,s)
NUMÉRO(p) DÉCIMAL(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

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 Database lit les valeurs de ces paramètres à partir de la table NLS_SESSION_PARAMETERS. Autonomous Database utilise ces valeurs pour convertir les types de données Oracle DATE ou TIMESTAMP 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.