Prise en charge des formats Avro, ORC et Parquet pour DBMS_CLOUD
Cette section traite de la prise en charge d'Avro, d'ORC et de Parquet DBMS_CLOUD fournie avec Autonomous AI Database.
Options de format de package DBMS_CLOUD pour Avro, ORC ou Parquet
L'argument de format dans DBMS_CLOUD indique le format des fichiers source.
Les deux méthodes de spécification de l'argument de format sont :
format => '{"format_option" : "format_value" }'
et
format => json_object('format_option' value 'format_value')
Exemples :
format => json_object('type' VALUE 'CSV')
Pour indiquer plusieurs options, séparez les valeurs par une valeur ",".
Exemple :
format => json_object('ignoremissingcolumns' value 'true', 'removequotes' value 'true', 'dateformat' value 'YYYY-MM-DD-HH24-MI-SS', 'blankasnull' value 'true')
| Option de format | Description | Syntaxe |
|---|---|---|
regexuri |
Lorsque la valeur de Les caractères "*" et " ?" sont considérés comme des caractères génériques lorsque le paramètre Les modèles d'expression régulière sont uniquement pris en charge pour le nom de fichier ou le chemin de sous-dossier dans vos URI et la correspondance de modèle est identique à celle effectuée par la fonction Pour les tables externes, cette option n'est prise en charge qu'avec les tables créées sur un fichier dans Object Storage. Exemple :
Pour plus d'informations sur la condition |
Valeur par défaut : |
type |
Spécifie le type de fichier. |
|
schema |
Lorsque le schéma est défini sur Les noms de colonne correspondront à ceux trouvés dans Avro, ORC ou Parquet. Les types de données sont convertis des types Avro, ORC ou Parquet en types de données Oracle. Toutes les colonnes sont ajoutées à la table. La valeur La valeur Valeur par défaut : si Remarque : pour les fichiers au format Avro, ORC ou Parquet, l'option de format |
|
Mise en correspondance de types de données Oracle avec des types de données Avro pour le package DBMS_CLOUD
Décrit le mapping des types de données Avro avec les types de données Oracle.
Remarque : les types complexes, tels que les cartes, les tableaux et les structures, sont pris en charge à partir d'Oracle Database 19c. Pour plus d'informations sur l'utilisation des types complexes Avro, ORC et Parquet, reportez-vous à Types complexes de package DBMS_CLOUD.
| Type Avro | Type Oracle |
|---|---|
| INT (ENT) | NUMBER(10) |
| LONG | NOMBRE(19) |
| BOOL | NOMBRE(1) |
| TABLEAU D'OCTETS UTF8 | RAW(2000) |
| FLT | BINARY_FLOAT |
| Liste de distribution pour les messages | BINARY_DOUBLE |
| DÉCIMAL(p) | NUMÉRO(p) |
| DÉCIMAL(p,s) | NUMERO(p,s) |
| DATE | DATE |
| STRING | VARCHAR2 |
| TIME_MILLIS | VARCHAR2(20 OCTETS) |
| TIME_MICROS | VARCHAR2(20 OCTETS) |
| TIMESTAMP_MILLIS | TIMESTAMP(3) |
| TIMESTAMP_MICROS | TIMESTAMP(6) |
| ENUM | VARCHAR2(n) Où : "n" est la longueur maximale réelle des valeurs possibles d'AVRO ENUM |
| DURATION (DUREE) | RAW(2000) |
| FIXED | RAW(2000) |
| NULL | OCTET VARCHAR2(1) |
Pour plus d'informations sur l'utilisation des types complexes Avro, ORC et Parquet, reportez-vous à Types complexes de package DBMS_CLOUD.
Mise en correspondance de types de données Oracle avec des types de données ORC pour le package DBMS_CLOUD
Décrit la mise en correspondance des types de données ORC avec les types de données Oracle.
Pour plus d'informations sur l'utilisation des types complexes ORC, reportez-vous à Types de complexe Avro, ORC et Parquet du package DBMS_CLOUD.
| Type ORC | Type Oracle | En savoir plus |
|---|---|---|
| tableau | Format JSON VARCHAR2(n) | Types complexes Avro, ORC et Parquet pour le package DBMS_CLOUD |
| bigint (64 bits) | NOMBRE(19) | |
| binaire | BLOB | |
| boolean (1 bit) | NOMBRE(1) | |
| char | CHAR(n) | |
| Date | DATE | |
| double | BINARY_DOUBLE | |
| float | BINARY_FLOAT | |
| int (32 bits) | NUMBER(10) | |
| list | Format JSON VARCHAR2(n) | Types complexes Avro, ORC et Parquet pour le package DBMS_CLOUD |
| carte | Format JSON VARCHAR2(n) | Types complexes Avro, ORC et Parquet pour le package DBMS_CLOUD |
| smallint (16 bits) | NOMBRE(5) | |
| chaîne | VARCHAR2(4000) | |
| struct | Format JSON VARCHAR2(n) | Types complexes Avro, ORC et Parquet pour le package DBMS_CLOUD |
| timestamp | TIMESTAMP | |
| tinyint (8 bits) | NOMBRE(3) | |
| union | Format JSON VARCHAR2(n) | Types complexes Avro, ORC et Parquet pour le package DBMS_CLOUD |
| varchar | VARCHAR2(n) |
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 Parquet et les types de données Oracle.
Remarque : les types complexes, tels que les cartes, les tableaux et les structures, sont pris en charge à partir d'Oracle Database 19c. Pour plus d'informations sur l'utilisation des types complexes Parquet, reportez-vous à Types de complexe Avro, ORC et Parquet du package DBMS_CLOUD.
| Type de parquet | Type Oracle |
|---|---|
| UINT_64 | NOMBRE (20) |
| INT_64 | NOMBRE(19) |
| UINT_32 | NUMBER(10) |
| INT_32 | NUMBER(10) |
| UINT_16 | NOMBRE(5) |
| INT_16 | NOMBRE(5) |
| UINT_8 | NOMBRE(3) |
| INT_8 | NOMBRE(3) |
| BOOL | NOMBRE(1) |
| TABLEAU D'OCTETS UTF8 | VARCHAR2(4000 OCTETS) |
| FLT | BINARY_FLOAT |
| Liste de distribution pour les messages | BINARY_DOUBLE |
| DÉCIMAL(p) | NUMÉRO(p) |
| DÉCIMAL(p,s) | NUMERO(p,s) |
| DATE | DATE |
| STRING | VARCHAR2(4000) |
| TIME_MILLIS | VARCHAR2(20 OCTETS) |
| HEURE_MILLIS_UTC | VARCHAR2(20 OCTETS) |
| TIME_MICROS | VARCHAR2(20 OCTETS) |
| HEURE_MICROS_UTC | VARCHAR2(20 OCTETS) |
| TIMESTAMP_MILLIS | TIMESTAMP(3) |
| HORODATAGE_MILLIS_UTC | TIMESTAMP(3) |
| TIMESTAMP_MICROS | TIMESTAMP(6) |
| HORODATAGE_MICROS_UTC | TIMESTAMP(6) |
| TIMESTAMP_NANOS | TIMESTAMP(9) |
Pour plus d'informations sur l'utilisation des types complexes Parquet, reportez-vous à Types de complexe Avro, ORC et Parquet du package DBMS_CLOUD.
Mise en correspondance de types de données Oracle avec des types de données Parquet pour le package DBMS_CLOUD
Décrit la mise en correspondance des types de données Oracle avec les types de données 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) | HORODATAGE_MILLIS_UTC |
| TIMESTAMP(6) | TIMESTAMP_MICROS |
| TIMESTAMP(6) | HORODATAGE_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 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 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. 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 dans Oracle Database 19c Database Globalization Support Guide ou Oracle Database 26ai Database Globalization Support Guide et Vues du dictionnaire de données NLS dans Oracle Database 19c Database Globalization Support Guide ou Oracle Database 26ai Database Globalization Support Guide.
Types complexes Avro, ORC et Parquet pour le package DBMS_CLOUD
Décrit la mise en correspondance des types de données complexes Avro, ORC et Parquet avec les types de données Oracle.
Autonomous AI Database prend en charge les types de données complexes, notamment les types complexes suivants :
- struct
- list
- carte
- union
- tableau
Lorsque vous indiquez un type de fichier source Avro, ORC ou Parquet et que le fichier source inclut des colonnes complexes, les requêtes Autonomous AI Database renvoient le format JSON pour les colonnes complexes. Cela simplifie le traitement des résultats de requête. Vous pouvez utiliser les puissantes fonctionnalités d'analyse JSON d'Oracle de manière cohérente entre les types de fichier et les types de données. Le tableau suivant présente le format des types complexes dans la base de données Autonomous AI :
Remarque : les champs complexes sont mis en correspondance avec les colonnes VARCHAR2 et les limites de taille VARCHAR2 s'appliquent.
| Type | Parquet | ORC | Avro | Oracle |
|---|---|---|---|---|
| Liste : séquence de valeurs | List (Liste) | List (Liste) | Array | VARCHAR2 (format JSON) |
| Carte : liste des objets à clé unique | Mapper | Mapper | Mapper | VARCHAR2 (format JSON) |
| Union : valeurs de différents types | Indisponible | Union | Union | VARCHAR2 (format JSON) |
| Objet : zéro ou plusieurs paires clé-valeur | Struct | Struct | Enregistrement | VARCHAR2 (format JSON) |
Si vos fichiers source ORC, Parquet ou Avro contiennent des types complexes, vous pouvez interroger la sortie JSON pour ces types complexes courants. Par exemple, l'exemple suivant illustre un fichier ORC, movie-info.orc, avec un type complexe (la même gestion de type complexe s'applique aux fichiers source Parquet et Avro).
Examinez le fichier movie-info.orc avec le schéma suivant :
id int
original_title string
overview string
poster_path string
release_date string
vote_count int
runtime int
popularity double
genres array<struct<id:int,name:string>
Chaque film est classé par plusieurs éléments genres à l'aide d'un tableau de genres. Le tableau genres est un élément array de structs et chaque élément comporte un élément id (int) et un élément name (string). Le tableau genres est considéré comme un type complexe. Vous pouvez créer une table sur ce fichier ORC à l'aide de DBMS_CLOUD.CREATE_EXTERNAL_TABLE comme suit :
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name =>'movie_info',
credential_name =>'OBJ_STORE_CRED',
file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/mytenancy/b/movies/o/movie-info.orc',
format => '{"type":"orc", "schema": "first"}');
END;
/
Lorsque vous créez la table externe, la base de données génère automatiquement les colonnes en fonction du schéma dans le fichier ORC (si vous utilisez Avro ou Parquet, la même chose s'applique). Pour cet exemple, DBMS_CLOUD.CREATE_EXTERNAL_TABLE crée une table dans la base de données comme suit :
CREATE TABLE "ADMIN"."MOVIE_INFO"
( "ID"
NUMBER(10,0),
"ORIGINAL_TITLE" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"OVERVIEW" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"POSTER_PATH" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"RELEASE_DATE" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP",
"VOTE_COUNT" NUMBER(10,0),
"RUNTIME" NUMBER(10,0),
"POPULARITY" BINARY_DOUBLE,
"GENRES" VARCHAR2(4000 BYTE) COLLATE "USING_NLS_COMP"
) DEFAULT COLLATION "USING_NLS_COMP"
ORGANIZATION EXTERNAL
( TYPE ORACLE_BIGDATA
DEFAULT DIRECTORY "DATA_PUMP_DIR"
ACCESS PARAMETERS
( com.oracle.bigdata.credential.name=OBJ_STORE_CRED
com.oracle.bigdata.fileformat=ORC
)
LOCATION
(
'https://objectstorage.us-phoenix-1.oraclecloud.com/n/mytenancy/b/movies/o/movie-info.orc'
)
)
REJECT LIMIT UNLIMITED
PARALLEL;
)
Vous pouvez maintenant interroger les données de film :
SELECT original_title, release_date, genres
FROM movie_info
WHERE release_date > '2000'
ORDER BY original_title;
La sortie suivante est générée :
original_title release_date genres
(500) Days of Summer 2009 [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},{"id":17,"name":"Horror"},{"id":19,"name":"Western"},{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
10,000 BC 2008 [{"id":6,"name":"Comedy"}]
11:14 2003 [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
127 Hours 2010 [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
13 Going on 30 2004 [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
1408 2007 [{"id":45,"name":"Sci-Fi"},{"id":6,"name":"Comedy"},{"id":17,"name":"Horror"},{"id":6,"name":"Comedy"},{"id":18,"name":"War"}]
Le type complexe genres est renvoyé en tant que tableau JSON.
Pour rendre les données JSON plus utiles, vous pouvez transformer la colonne à l'aide des fonctions JSON d'Oracle. Par exemple, vous pouvez utiliser la notation "." JSON ainsi que les fonctions de transformation les plus puissantes telles que JSON_TABLE.
Reportez-vous à Simple Dot-Notation Access to JSON Data dans le Guide du développeur JSON Oracle Database 19c ou le Guide du développeur JSON Oracle Database 26ai pour plus d'informations sur la notation ".".
Pour plus d'informations sur JSON_TABLE, reportez-vous à SQL/JSON Function JSON_TABLE dans le Guide du développeur JSON Oracle Database 19c ou dans le Guide du développeur JSON Oracle Database 26ai.
L'exemple suivant illustre une requête sur la table qui prend chaque valeur du tableau et transforme la valeur en ligne dans l'ensemble de résultats :
SELECT original_title, release_date, m.genre_name, genres
FROM movie_info mi,
JSON_TABLE(mi.genres, '$.name[*]'
COLUMNS (genre_name VARCHAR2(25) PATH
'$')
) AS m
WHERE rownum < 10;
JSON_TABLE crée une ligne pour chaque valeur du tableau, pense à la jointure externe et la structure est analysée pour extraire le nom du genre. La sortie suivante est générée :
original_title release_date genre_name genres
(500) Days of Summer 2009 Drama [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
{"id":17,"name":"Horror"},{"id":19,"name":"Western"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer 2009 Comedy [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
{"id":17,"name":"Horror"},{"id":19,"name":"Western"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer 2009 Horror [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
{"id":17,"name":"Horror"},{"id":19,"name":"Western"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer 2009 Western [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
{"id":17,"name":"Horror"},{"id":19,"name":"Western"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer 2009 War [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
{"id":17,"name":"Horror"},{"id":19,"name":"Western"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
(500) Days of Summer 2009 Romance [{"id":3,"name":"Drama"},{"id":6,"name":"Comedy"},
{"id":17,"name":"Horror"},{"id":19,"name":"Western"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
10,000 BC 2008 Comedy [{"id":6,"name":"Comedy"}]
11:14 2003 Family [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
11:14 2003 Thriller [{"id":9,"name":"Thriller"},{"id":14,"name":"Family"}]
127 Hours 2010 Comedy [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
127 Hours 2010 Drama [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"}]
13 Going on 30 2004 Romance [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30 2004 Comedy [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30 2004 War [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
13 Going on 30 2004 Drama [{"id":6,"name":"Comedy"},{"id":3,"name":"Drama"},
{"id":18,"name":"War"},{"id":15,"name":"Romance"}]
Mise en correspondance de nom de colonnes Avro, ORC et Parquet avec des noms de colonne Oracle pour le package DBMS_CLOUD
Décrit les règles de conversion des noms de colonne Avro, ORC et Parquet en noms de colonne Oracle.
Les éléments suivants sont pris en charge pour les noms de colonne Avro, ORC et Parquet, mais peuvent nécessiter l'utilisation de guillemets doubles pour les références SQL Oracle dans les tables externes. Ainsi, pour faciliter l'utilisation et éviter d'avoir à utiliser des guillemets lors du référencement de noms de colonne, si possible, n'utilisez pas les éléments suivants dans les noms de colonne Avro, ORC et Parquet :
- Blancs intégrés
- Numéros principaux
- Soulignements principaux
- Mots réservés Oracle SQL
Le tableau suivant présente les différents types de nom de colonne Avro, ORC et Parquet, ainsi que les règles d'utilisation des noms de colonne dans les noms de colonne Oracle dans les tables externes.
| Nom d'Avro, ORC ou Parquet | CREATE TABLE Name (Nom de la TABLE CREATE) | CATALOGUE Oracle | SQL valide | Remarques |
|---|---|---|---|---|
| pièce, pièce ou pièce | pièce, pièce, pièce | PARTIE |
|
Oracle met implicitement en majuscules les noms de colonne non entre guillemets. |
| N° de commande | "N° d'ordre" | N° de commande | select "Ord No" |
Des guillemets doubles sont requis lorsqu'il y a des blancs incorporés, ce qui préserve également la casse des caractères. |
| __clé_index__ | "__clé_index__" | __clé_index__ | select "__index_key__" |
Les guillemets doubles sont requis lorsqu'il existe un trait de soulignement de début, qui conserve également la casse des caractères. |
| 6 critères | "6 voies" | 6 critères | select "6Way" |
Les guillemets doubles sont requis lorsqu'il y a un chiffre de début, ce qui conserve également la casse des caractères. |
| CREATE, CREATE, or CREATE, etc. (toute variation de casse), PARTITION, PARTITION, PARTITION, etc. (pour un mot réservé Oracle) | "CRÉER" "PARTITION" | CRÉATION DE PARTITION |
|
Les mots réservés Oracle SQL doivent être placés entre guillemets. Ceux-ci doivent être placés en majuscules, mais doivent toujours être placés entre guillemets lorsqu'ils sont utilisés n'importe où dans SQL. |
| ROWID, ROWID, ROWID, etc. (pour ROWID, voir notes) | id ligne |
|
Pour ROWID, toute variation mixte ou en minuscules de ROWID préserve le cas et doit toujours être citée deux fois et utiliser les variations de cas d'origine. En raison du conflit inhérent avec Oracle ROWID pour la table, si vous indiquez un ROWID en majuscules, il est automatiquement stocké en tant que "ROWID" en minuscules et doit toujours être entre guillemets lorsqu'il est référencé. |
Remarques
-
En général, un nom de colonne dans une table externe peut être référencé sans guillemets doubles.
-
A moins qu'il n'y ait un blanc incorporé, un trait de soulignement ("_") ou un chiffre de début ("0" à "9") dans le nom de colonne, la casse d'origine du nom de colonne est conservée, et elle doit toujours être référencée par des guillemets et en utilisant la casse d'origine (majuscules, minuscules ou mixtes) du nom de colonne Avro, ORC ou Parquet.
-
Après avoir utilisé
DBMS_CLOUD.CREATE_EXTERNAL_TABLEpour créer une table externe au formatavro,orcouparquet, utilisez la commandeDESCRIBEdans SQL*Plus pour visualiser les noms de colonne de la table. -
Lorsque les mots réservés Oracle SQL sont utilisés dans les noms de colonne Avro, ORC ou Parquet, ils doivent toujours être entre guillemets lorsqu'ils sont référencés n'importe où dans SQL. Pour plus d'informations, reportez-vous à Mots réservés Oracle SQL dans le manuel Oracle Database 26ai SQL Language Reference ou Oracle Database 26ai SQL Language Reference.