DBMS_CLOUD pour les objets et les fichiers

Cette section décrit les sous-programmes DBMS_CLOUD utilisés pour utiliser des objets et des fichiers.

Conditions requises

En tant que développeur, vous pouvez utiliser des procédures DBMS_CLOUD avec des bases de données Autonomous Database déployées sur Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.

Selon le choix de déploiement, les préalables suivants doivent être satisfaits pour utiliser les procédures DBMS_CLOUD avec les fournisseurs de services Amazon S3, Azure Blob Storage et Google Cloud Storage.

Une connectivité sortante doit avoir été configurée à l'aide d'une passerelle NAT par l'administrateur de votre parc, comme décrit ci-dessous :
  • Créez une passerelle NAT dans le réseau en nuage virtuel (VCN) où résident vos ressources Autonomous Database en suivant les instructions sous Créer une passerelle NAT dans la documentation sur Oracle Cloud Infrastructure.
  • Après avoir créé la passerelle NAT, ajoutez une règle de routage et une règle de sécurité de trafic sortant à chaque sous-réseau (dans le VCN) où résident des ressources Autonomous Database afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique de votre instance Azure AD :
    1. Allez à la page Détails du sous-réseau correspondante.
    2. Dans l'onglet Informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher la page Détails.
    3. Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
      • Destination : 0.0.0.0/0
      • Type de cible : Passerelle NAT
      • Target : Nom de la passerelle NAT que vous venez de créer dans le VCN

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle de routage avec ces caractéristiques.

    4. Retournez à la page Détails du sous-réseau.
    5. Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher la page Détails de la liste de sécurité.
    6. Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.
    7. Dans la table des règles de trafic sortant existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
      • Type de destination : CIDR
      • Destination : 0.0.0.0/0
      • Protocole IP : TCP
      • Intervalle de ports sources : 443
      • Intervalle de ports de destination : Tout

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles de trafic sortant et ajoutez une règle de trafic sortant avec ces caractéristiques.

Les paramètres de mandataire HTTP de votre environnement doivent permettre à la base de données d'accéder au fournisseur de services en nuage.

Ces paramètres sont définis par l'administrateur de votre parc lors de la création de l'infrastructure Exadata Cloud@Customer, comme décrit dans Utilisation de la console pour provisionner le service Exadata Database sur Cloud@Customer.

Note :

La configuration réseau, y compris le mandataire HTTP, ne peut être modifiée que jusqu'à ce que l'infrastructure Exadata ait l'état Activation requise. Une fois activé, vous ne pouvez pas modifier ces paramètres.

La configuration d'un mandataire HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service dans My Oracle Support. Pour plus de détails, voir Créer une demande de service dans My Oracle Support.

DBMS_CLOUD Sous-programmes pour les objets et les fichiers

Sous-programmes de gestion des objets et des fichiers de l'ensemble DBMS_CLOUD.

Sous-programme Description

Procédure COPY_COLLECTION

Cette procédure charge des données dans une collection SODA existante à partir du service de stockage d'objets en nuage ou de fichiers dans un répertoire.

Procédure COPY_DATA

Cette procédure charge des données dans les tables Autonomous Database existantes à partir du stockage d'objets en nuage ou à partir de fichiers d'un répertoire.

COPY_DATA Procédure pour les fichiers Avro, ORC ou Parquet

Cette procédure, avec le type du paramètre format réglé à la valeur orc, parquet ou avro, charge des données dans des tables Autonomous Database existantes à partir de fichiers ORC, Parquet ou Avro dans le nuage ou à partir de fichiers ORC, Parquet ou Avro dans un répertoire.

Comme pour les fichiers texte, les données sont copiées à partir du fichier source ORC, Parquet ou Avro dans la table interne existante.

Procédure COPY_OBJECT

Cette procédure copie les fichiers d'un seau de stockage d'objets en nuage vers un autre.

Procédure CREATE_EXTERNAL_TABLE

Cette procédure crée une table externe pour des fichiers en nuage ou dans un répertoire. Cela vous permet d'exécuter des interrogations sur des données externes à partir d'une base de données autonome.

CREATE_EXTERNAL_TABLE Procédure pour les fichiers Avro, ORC ou Parquet

Cette procédure, avec le type du paramètre format réglé à la valeur parquet, orc, or avro, crée une table externe avec des fichiers au format Parquet, ORC ou Avro dans le nuage ou dans un répertoire.

Cela vous permet d'exécuter des interrogations sur des données externes à partir d'une base de données autonome.

Procédure CREATE_EXTERNAL_TEXT_INDEX

Cette procédure crée un index de texte sur les fichiers du magasin d'objets.

Procédure CREATE_HYBRID_PART_TABLE

Cette procédure crée une table partitionnée hybride. Cela vous permet d'exécuter des interrogations sur des données partitionnées hybrides à partir d'une base de données autonome.

Procédure DELETE_ALL_OPERATIONS

Cette procédure efface toutes les opérations de chargement de données enregistrées dans la table user_load_operations de votre schéma ou toutes les opérations de chargement de données du type spécifié par le paramètre type.

Procédure DELETE_FILE

Cette procédure supprime le fichier spécifié du répertoire spécifié dans la base de données autonome

Procédure DELETE_OBJECT

Cette procédure supprime l'objet spécifié du magasin d'objets.

Procédure DELETE_OPERATION

Cette procédure accepte une valeur operation_id en tant qu'entrée et supprime les journaux associés à la valeur operation_id spécifiée.

Procédure DROP_EXTERNAL_TEXT_INDEX

Cette procédure supprime l'index de texte sur les fichiers du magasin d'objets.

Procédure EXPORT_DATA

Cette procédure exporte les données d'Autonomous Database vers des fichiers dans le nuage en fonction du résultat d'une interrogation. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id. Selon l'option type du paramètre format spécifiée, la procédure exporte les rangées vers le magasin d'objets en nuage sous forme de texte avec les options CSV, JSON, Parquet ou XML

Procédure et fonction GET_OBJECT

Cette procédure est surchargée. Le formulaire de cette procédure lit un objet dans le service de stockage d'objets en nuage et le copie dans la base de données autonome. Le formulaire de la fonction lit un objet dans le service de stockage d'objets en nuage et retourne un objet BLOB dans la base de données autonome.

Fonction LIST_FILES

Cette fonction répertorie les fichiers du répertoire indiqué. Les résultats comprennent les noms des fichiers et des métadonnées supplémentaires sur ceux-ci, telles que leur taille en octets, l'horodatage de la création et l'horodatage de la dernière modification.

Fonction LIST_OBJECTS

Cette fonction liste les objets situés dans l'emplacement spécifié du magasin d'objets. Les résultats comprennent les noms des objets et des métadonnées supplémentaires sur ceux-ci, telles que leur taille, la somme de contrôle, l'horodatage de la création et l'horodatage de la dernière modification.

Procédure MOVE_OBJECT

Cette procédure déplace un objet d'un seau de stockage d'objets en nuage vers un autre.

Procédure PUT_OBJECT

Cette procédure est surchargée. Sous une forme, elle copie un fichier d'une base de données autonome vers le stockage d'objets en nuage. Sous une autre, elle copie un objet BLOB depuis la base de données autonome vers le stockage d'objets en nuage.

Procédure SYNC_EXTERNAL_PART_TABLE

Cette procédure simplifie la mise à jour d'une table partitionnée externe à partir de fichiers en nuage. Exécutez cette procédure lorsque de nouvelles partitions sont ajoutées ou lorsque des partitions sont supprimées de la source du magasin d'objets pour la table partitionnée externe.

Procédure VALIDATE_EXTERNAL_TABLE

Cette procédure valide les fichiers sources d'une table externe, génère des informations de journal et stocke les rangées qui ne correspondent pas aux options de format spécifiées pour la table externe dans une table badfile sur Autonomous Database.

Procédure VALIDATE_EXTERNAL_PART_TABLE

Cette procédure valide les fichiers sources pour une table partitionnée externe, génère des informations de journal et stocke les rangées qui ne correspondent pas aux options de format spécifiées pour la table externe dans une table badfile sur Autonomous Database.

Procédure VALIDATE_HYBRID_PART_TABLE

Cette procédure valide les fichiers sources d'une table partitionnée hybride, génère des informations de journal et stocke les rangées qui ne correspondent pas aux options de format spécifiées pour la table hybride dans une table badfile sur Autonomous Database.

Procédure COPY_COLLECTION

Cette procédure charge des données dans une collection SODA à partir du service de stockage d'objets en nuage ou d'un répertoire. Si la collection SODA indiquée n'existe pas, la procédure la crée. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id.

Syntaxe

DBMS_CLOUD.COPY_COLLECTION (
    collection_name   IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    format            IN CLOB     DEFAULT NULL
);

DBMS_CLOUD.COPY_COLLECTION (
    collection_name   IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    format            IN CLOB     DEFAULT NULL,
    operation_id      OUT NOCOPY NUMBER
);

Paramètres

Paramètre Description

collection_name

Nom de la collection SODA dans laquelle les données seront chargées. Si une collection portant ce nom existe déjà, les données spécifiées seront chargées, sinon une nouvelle collection sera créée.

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

Ce paramètre n'est pas utilisé lorsque vous spécifiez un répertoire avec file_uri_list.

file_uri_list

Ce paramètre spécifie une liste délimitée par des virgules d'URI de fichier source ou un ou plusieurs répertoires et fichiers sources.

URI de fichier source en nuage

Vous pouvez utiliser des caractères génériques et des expressions rationnelles dans les noms de fichier des URI de fichier source en nuage.

Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre regexuri format est réglé à TRUE.

Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre regexuri est réglé à FALSE. Lorsque le paramètre regexuri est réglé à TRUE, les caractères "*" et "?" font partie du modèle d'expression rationnelle spécifié.

Les modèles d'expression rationnelle ne sont pris en charge que pour le nom de fichier ou le chemin du sous-dossier dans vos URI et la correspondance de modèle est identique à celle effectuée par la fonction REGEXP_LIKE.

Par exemple :

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Le format des URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats des URI du service de stockage d'objets en nuage.

Voir REGEXP_LIKE Condition dans Informations de référence sur le langage SQL pour Oracle Database 19c ou Informations de référence sur le langage SQL pour Oracle Database 23ai pour plus d'informations sur la condition REGEXP_LIKE.

Répertoire

Vous pouvez spécifier un répertoire et un ou plusieurs noms de fichier ou utiliser une liste de répertoires et de noms de fichier séparés par des virgules. Le format de spécification d'un répertoire est :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données qui n'est pas sensible à la casse. Le nom du fichier est sensible à la casse.

Vous pouvez utiliser des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé comme caractère générique pour plusieurs caractères, "?" peut être utilisé pour un seul caractère. Par exemple :'MY_DIR:*" ou 'MY_DIR:test?'

Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple :'MY_DIR1:*, MY_DIR2:test?'

Utilisez des guillemets doubles pour indiquer un nom de répertoire sensible à la casse. Par exemple :'"my_dir1":*, "my_dir2":Test?'

Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple :'MY_DIR:''filename.ext'. Ceci spécifie que filename commence par un guillemet (').

format

Options décrivant le format des fichiers sources. Ces options sont spécifiées en tant que chaîne JSON.

Les formats pris en charge sont : characterset, compression, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, unpackarray, keyassignment et keypath.

Outre les formats mentionnés pour les données JSON, les bases de données autonomes prennent également en charge d'autres formats. Pour la liste des arguments de format pris en charge par Autonomous Database, voir Paramètre de format.

operation_id

Utilisez ce paramètre pour suivre la progression et le statut final de l'opération de chargement avec l'ID correspondant dans la vue USER_LOAD_OPERATIONS.

Exemple

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'OBJ_STORE_CRED',
            username        => 'user_name@oracle.com',
            password        => 'password'
            );

    DBMS_CLOUD.COPY_COLLECTION(
            collection_name => 'myCollection',
            credential_name => 'OBJ_STORE_CRED',
            file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/myCollection.json'  
            );
END;
/

Procédure COPY_DATA

Cette procédure charge des données dans des tables Autonomous Database existantes à partir de fichiers dans le nuage ou à partir de fichiers d'un répertoire. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id.

Syntaxe

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    schema_name       IN VARCHAR2,
    field_list        IN CLOB,
    format            IN CLOB);

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB DEFAULT NULL,
    schema_name       IN VARCHAR2 DEFAULT NULL,
    field_list        IN CLOB DEFAULT NULL,
    format            IN CLOB DEFAULT NULL
    operation_id      OUT NOCOPY NUMBER);

Paramètres

Paramètre Description

table_name

Nom de la table cible dans la base de données. La table cible doit être créée avant l'exécution de COPY_DATA.

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

Ce paramètre n'est pas utilisé lorsque vous spécifiez un répertoire avec file_uri_list.

file_uri_list

Vous pouvez utiliser des caractères génériques et des expressions rationnelles dans les noms de fichier des URI de fichier source en nuage.

URI de fichier source en nuage

Ce paramètre spécifie une liste délimitée par des virgules d'URI de fichier source ou un ou plusieurs répertoires et fichiers sources.

Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre regexuri format est réglé à TRUE.

Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre regexuri est réglé à FALSE. Lorsque le paramètre regexuri est réglé à TRUE, les caractères "*" et "?" font partie du modèle d'expression rationnelle spécifié.

Les modèles d'expression rationnelle ne sont pris en charge que pour le nom de fichier ou le chemin du sous-dossier dans vos URI et la correspondance de modèle est identique à celle effectuée par la fonction REGEXP_LIKE.

Par exemple :

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Le format des URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats des URI du service de stockage d'objets en nuage.

Voir REGEXP_LIKE Condition dans Informations de référence sur le langage SQL pour Oracle Database 19c ou Informations de référence sur le langage SQL pour Oracle Database 23ai pour plus d'informations sur la condition REGEXP_LIKE.

Répertoire

Vous pouvez spécifier un répertoire et un ou plusieurs noms de fichier ou utiliser une liste de répertoires et de noms de fichier séparés par des virgules. Le format de spécification d'un répertoire est :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données qui n'est pas sensible à la casse. Le nom du fichier est sensible à la casse.

Vous pouvez utiliser des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé comme caractère générique pour plusieurs caractères, "?" peut être utilisé pour un seul caractère. Par exemple :'MY_DIR:*" ou 'MY_DIR:test?'

Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple :'MY_DIR1:*, MY_DIR2:test?'

Utilisez des guillemets doubles pour indiquer un nom de répertoire sensible à la casse. Par exemple :'"my_dir1":*, "my_dir2":Test?'

Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple :'MY_DIR:''filename.ext'. Ceci spécifie que filename commence par un guillemet (').

schema_name

Nom du schéma dans lequel réside la table cible. La valeur par défaut est NULL, ce qui signifie que la table cible se trouve dans le même schéma que l'utilisateur qui exécute la procédure.

field_list

Identifie les champs des fichiers sources et leur type de données. La valeur par défaut est NULL, ce qui signifie que les champs et leur type de données sont déterminés par le paramètre column_list. La syntaxe de cet argument est identique à celle de la clause field_list dans les tables externes Oracle standard. Pour plus de renseignements, consultez la page field_list dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

Lorsque la valeur de l'option type du paramètre format est json, ce paramètre est ignoré.

Pour un exemple d'utilisation de field_list, voir Procédure CREATE_EXTERNAL_TABLE.

format

Options décrivant le format des fichiers sources, journaux et incorrects. Pour connaître la liste des options et la façon de spécifier les valeurs, voir Paramètre de format.

Pour plus d'informations sur les options de format de fichier Avro, ORC ou Parquet, voir Options de format de l'ensemble DBMS_CLOUD pour Avro, ORC ou Parquet.

operation_id

Utilisez ce paramètre pour suivre la progression et le statut final de l'opération de chargement avec l'ID correspondant dans la vue USER_LOAD_OPERATIONS.

Note d'utilisation

Le délimiteur d'enregistrement par défaut est detected newline. Avec detected newline, DBMS_CLOUD tente de trouver automatiquement le caractère de saut de ligne correct à utiliser comme délimiteur d'enregistrement. DBMS_CLOUD recherche d'abord le caractère de saut de ligne Windows \r\n. S'il trouve le caractère de saut de ligne Windows, celui-ci est utilisé comme délimiteur d'enregistrement pour tous les fichiers de la procédure. S'il ne trouve pas le caractère de saut de ligne Windows, DBMS_CLOUD recherche le caractère de saut de ligne UNIX/Linux \n et, s'il le trouve, il utilise \n comme délimiteur d'enregistrement pour tous les fichiers de la procédure. Si les fichiers sources utilisent une combinaison de différents délimiteurs d'enregistrement, une erreur du type "KUP-04020: found record longer than buffer size supported" peut s'afficher. Dans ce cas, vous devez modifier les fichiers sources pour qu'ils utilisent le même délimiteur d'enregistrement ou spécifier uniquement les fichiers sources qui utilisent le même délimiteur d'enregistrement.

Voir Paramètre de format pour plus d'informations sur l'option de format recorddelmiter.

Exemples

BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DEF_CRED_NAME',
            username        => 'user_name@oracle.com',
            password        => 'password'
            );
END;
/
BEGIN
 DBMS_CLOUD.COPY_DATA(
    table_name =>'CHANNELS',
    credential_name =>'DEF_CRED_NAME',
    file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/channels.txt',
    format => json_object('delimiter' value ',')
 );
END;
/
BEGIN
    DBMS_CLOUD.COPY_DATA(
            table_name      => 'ORDERS',
            schema_name     => 'TEST_SCHEMA',
            credential_name => 'DEF_CRED_NAME',
	     file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/adbexample/b/json/o/orde[r]s.tbl.1'
            format          =>  json_object('ignoreblanklines' value TRUE,
                                            'rejectlimit' value '0',
                                            'dateformat' value 'yyyy-mm-dd',
                                            'regexuri' value TRUE)
            );
END;
/

COPY_DATA Procédure pour les fichiers Avro, ORC ou Parquet

Cette procédure avec le paramètre format type réglé à la valeur avro, orc ou parquet charge des données dans les tables Autonomous Database existantes à partir de fichiers Avro, ORC ou Parquet dans le nuage ou à partir de fichiers d'un répertoire.

Comme pour les fichiers texte, les données sont copiées à partir du fichier source Avro, ORC ou Parquet dans la table interne existante.

Syntaxe

DBMS_CLOUD.COPY_DATA (
    table_name        IN VARCHAR2,
    credential_name   IN VARCHAR2 DEFAULT NULL,
    file_uri_list     IN CLOB,
    schema_name       IN VARCHAR2 DEFAULT,
    field_list        IN CLOB DEFAULT,
    format            IN CLOB DEFAULT);

Paramètres

Paramètre Description

table_name

Nom de la table cible dans la base de données. La table cible doit être créée avant l'exécution de COPY_DATA.

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

Ce paramètre n'est pas utilisé lorsque vous spécifiez un répertoire avec file_uri_list.

file_uri_list

Ce paramètre spécifie une liste délimitée par des virgules d'URI de fichier source ou un ou plusieurs répertoires et fichiers sources.

URI de fichier source en nuage

Vous pouvez utiliser des caractères génériques et des expressions rationnelles dans les noms de fichier des URI de fichier source en nuage.

Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre regexuri format est réglé à TRUE.

Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre regexuri est réglé à FALSE. Lorsque le paramètre regexuri est réglé à TRUE, les caractères "*" et "?" font partie du modèle d'expression rationnelle spécifié.

Les modèles d'expression rationnelle ne sont pris en charge que pour le nom de fichier ou le chemin du sous-dossier dans vos URI et la correspondance de modèle est identique à celle effectuée par la fonction REGEXP_LIKE.

Par exemple :

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Le format des URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats des URI du service de stockage d'objets en nuage.

Voir REGEXP_LIKE Condition dans Informations de référence sur le langage SQL pour Oracle Database 19c ou Informations de référence sur le langage SQL pour Oracle Database 23ai pour plus d'informations sur la condition REGEXP_LIKE.

Répertoire

Vous pouvez spécifier un répertoire et un ou plusieurs noms de fichier ou utiliser une liste de répertoires et de noms de fichier séparés par des virgules. Le format de spécification d'un répertoire est :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données qui n'est pas sensible à la casse. Le nom du fichier est sensible à la casse.

Vous pouvez utiliser des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé comme caractère générique pour plusieurs caractères, "?" peut être utilisé pour un seul caractère. Par exemple :'MY_DIR:*" ou 'MY_DIR:test?'

Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple :'MY_DIR1:*, MY_DIR2:test?'

Utilisez des guillemets doubles pour indiquer un nom de répertoire sensible à la casse. Par exemple :'"my_dir1":*, "my_dir2":Test?'

Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple :'MY_DIR:''filename.ext'. Ceci spécifie que filename commence par un guillemet (').

schema_name

Nom du schéma dans lequel réside la table cible. La valeur par défaut est NULL, ce qui signifie que la table cible se trouve dans le même schéma que l'utilisateur qui exécute la procédure.

field_list

Ignoré pour les fichiers Avro, ORC ou Parquet.

Les champs de la source correspondent aux colonnes de la table externe par nom. Les types de données sources sont convertis dans le type de données des colonnes de la table externe.

Pour les fichiers ORC, voir Mappage des types de données ORC à Oracle dans l'ensemble DBMS_CLOUD.

Pour les fichiers Parquet, voir Mappage entre types de données Parquet et Oracle dans l'ensemble DBMS_CLOUD pour plus de détails sur le mappage.

Pour les fichiers Avro, voir Mappage entre types de données Avro et Oracle dans l'ensemble DBMS_CLOUD pour plus de détails sur le mappage.

format

Options décrivant le format des fichiers sources. Pour les fichiers Avro, ORC ou Parquet, seules deux options sont prises en charge : voir Options de format de l'ensemble DBMS_CLOUD pour Avro, ORC ou Parquet.

Notes d'utilisation

  • Comme pour les autres fichiers de données, les chargements de données Avro, ORC et Parquet génèrent des journaux qui peuvent être consultés dans les tables dba_load_operations et user_load_operations. Chaque opération de chargement ajoute un enregistrement à dba[user]_load_operations qui indique la table contenant les journaux.

    La table des journaux fournit des informations sommaires sur le chargement.

  • Pour Avro, ORC ou Parquet, lorsque le type du paramètre format est réglé à avro, orc ou parquet, la table BADFILE_TABLE est toujours vide.

    • Pour les fichiers Parquet, les erreurs de contrainte PRIMARY KEY génèrent une erreur ORA.

    • Si une erreur de conversion des données d'une colonne se produit, par exemple, si la colonne cible n'est pas assez grande pour contenir la valeur convertie, la valeur de la colonne est réglée à NULL. Cela n'entraîne pas le rejet d'un enregistrement.

Procédure COPY_OBJECT

Cette procédure copie un objet d'un seau ou d'un dossier de stockage d'objets en nuage vers un autre.

Le seau ou dossier source et cible peut se trouver dans le même fournisseur de magasin d'objets en nuage ou dans un autre.

Lorsque la source et la cible se trouvent dans des magasins d'objets distincts ou ont des comptes différents avec le même fournisseur de services en nuage, vous pouvez donner des noms de données d'identification distincts pour les emplacements source et cible.

Le nom des données d'identification sources est également utilisé par défaut par l'emplacement cible lorsque le nom des données d'identification cibles n'est pas indiqué.

Syntaxe

DBMS_CLOUD.COPY_OBJECT (
    source_credential_name  IN  VARCHAR2 DEFAULT NULL,
    source_object_uri       IN  VARCHAR2,
    target_object_uri       IN  VARCHAR2,
    target_credential_name  IN  VARCHAR2 DEFAULT NULL
);

Paramètres

Paramètre Description

source_credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage source.

Si vous ne fournissez pas de valeur pour source_credential_name, credential_name est réglé à NULL.

source_object_uri

Indique l'URI, qui pointe vers l'emplacement du seau ou du dossier de stockage d'objets source.

Ce paramètre est obligatoire.

Le format des URI dépend du service de stockage d'objets en nuage. Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

target_object_uri

Indique l'URI du magasin d'objets cible.

Ce paramètre est obligatoire.

Le format des URI dépend du service de stockage d'objets en nuage. Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

target_credential_name

Nom des données d'identification permettant d'accéder à l'emplacement de stockage d'objets en nuage cible.

Si vous ne fournissez pas de valeur target_credential_name, target_object_uri est réglé à la valeur source_credential_name.

Exemple

BEGIN 
DBMS_CLOUD.COPY_OBJECT (
    source_credential_name => 'OCI_CRED',
    source_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
    target_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/

Procédure CREATE_EXTERNAL_PART_TABLE

Cette procédure crée une table partitionnée externe pour des fichiers en nuage ou à partir de fichiers d'un répertoire. Cela vous permet d'exécuter des interrogations sur des données externes à partir d'une base de données autonome.

Syntaxe

DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    partitioning_clause  IN CLOB,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);


DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    file_uri_list        IN VARCHAR2,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);

Paramètres

Paramètre Description

table_name

Nom de la table externe.

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

partitioning_clause

Spécifie la clause de partitionnement complète, y compris les informations d'emplacement des partitions individuelles.

Si vous utilisez le paramètre partitioning_clause, le paramètre file_uri_list n'est pas autorisé.

file_uri_list

Ce paramètre spécifie une liste délimitée par des virgules d'URI de fichier source ou un ou plusieurs répertoires et fichiers sources.

URI de fichier source en nuage

Vous pouvez utiliser des caractères génériques et des expressions rationnelles dans les noms de fichier des URI de fichier source en nuage.

Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre regexuri format est réglé à TRUE.

Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre regexuri est réglé à FALSE. Lorsque le paramètre regexuri est réglé à TRUE, les caractères "*" et "?" font partie du modèle d'expression rationnelle spécifié.

Les modèles d'expression rationnelle ne sont pris en charge que pour le nom de fichier ou le chemin du sous-dossier dans vos URI et la correspondance de modèle est identique à celle effectuée par la fonction REGEXP_LIKE.

Cette option n'est prise en charge qu'avec les tables externes créées dans un fichier du stockage d'objets.

Par exemple :

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Si vous utilisez le paramètre file_uri_list, le paramètre partitioning_clause n'est pas autorisé.

Le format des URI dépend du service de stockage d'objets en nuage. Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

Voir REGEXP_LIKE Condition dans Informations de référence sur le langage SQL pour Oracle Database 19c ou Informations de référence sur le langage SQL pour Oracle Database 23ai pour plus d'informations sur la condition REGEXP_LIKE.

column_list

Liste délimitée par des virgules de noms de colonne et de types de données pour la table externe. Ce paramètre présente les exigences suivantes, selon le type des fichiers de données spécifiés avec le paramètre file_uri_list :

  • Le paramètre column_list est requis avec les fichiers non structurés. À l'aide de fichiers non structurés, par exemple des fichiers texte CSV, le paramètre column_list doit spécifier tous les noms de colonne et les types de données du fichier de données, ainsi que les colonnes de partition dérivées du nom d'objet.

  • Le paramètre column_list est facultatif avec les fichiers structurés. Par exemple, avec les fichiers de données Avro, ORC ou Parquet, column_list n'est pas obligatoire. Lorsque column_list n'est pas inclus, l'option partition_columns du paramètre format doit inclure des spécifications pour les noms de colonne (name) et les types de données (type).

field_list

Identifie les champs des fichiers sources et leur type de données. La valeur par défaut est NULL, ce qui signifie que les champs et leur type de données sont déterminés par le paramètre column_list. La syntaxe de cet argument est identique à celle de la clause field_list dans les tables externes Oracle standard. Pour plus de renseignements, consultez la page field_list dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

format

L'option de format partition_columns spécifie les noms de colonne et les types de données DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE des colonnes de partition lorsque celles-ci sont dérivées du chemin du fichier, selon le type de fichier de données (structuré ou non structuré) :

  • Lorsque DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE comprend le paramètre column_list et que les fichiers de données ne sont pas structurés, par exemple les fichiers texte CSV, partition_columns n'inclut pas le type de données. Par exemple, utilisez un format tel que le suivant pour ce type de spécification partition_columns :

    '"partition_columns":["state","zipcode"]'

    Le type de données n'est pas requis, car il est spécifié dans le paramètre column_list de DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE.

  • Lorsque DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE n'inclut pas le paramètre column_list et que les fichiers de données sont structurés, par exemple les fichiers Avro, ORC ou Parquet, l'option partition_columns comprend à la fois le nom de colonne, la sous-clause name et le type de données, la sous-clause type. L'exemple suivant montre une spécification partition_columns :

    '"partition_columns":[
                   {"name":"country", "type":"varchar2(10)"},
                   {"name":"year", "type":"number"},
                   {"name":"month", "type":"varchar2(10)"}]'

Si les fichiers de données ne sont pas structurés et que la sous-clause type est spécifiée avec partition_columns, la sous-clause type est ignorée.

Pour les noms d'objet qui ne sont pas basés sur le format de ruche, l'ordre des colonnes spécifiées par partition_columns doit correspondre à celui qui apparaît dans le nom d'objet dans le chemin d'accès au fichier spécifié dans le paramètre file_uri_list.

Pour voir toutes les options du paramètre format décrivant le format des fichiers sources, voir Formats d'URI du stockage d'objets en nuage.

Notes d'utilisation

  • Vous ne pouvez pas appeler cette procédure avec les paramètres partitioning_clause et file_uri_list.

  • Le paramètre column_list est facultatif avec les fichiers de données structurés, notamment les fichiers de données Avro, Parquet ou ORC. Si column_list n'est pas spécifié, l'option partition_columns du paramètre format doit inclure name et type.

  • Le paramètre column_list est requis avec les fichiers de données non structurés, tels que les fichiers texte CSV.

  • La procédure DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE prend en charge les fichiers partitionnés externes dans les services de stockage d'objets en nuage pris en charge, notamment :
    • Service de stockage d'objets pour Oracle Cloud Infrastructure

    • Azure Blob Storage

    Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

  • La procédure DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE prend en charge les fichiers partitionnés externes dans des répertoires, soit dans un système de fichiers local, soit dans un système de fichiers réseau.

  • Lorsque vous appelez DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE avec le paramètre file_uri_list, les types de colonne spécifiés dans le nom de fichier du magasin d'objets en nuage doivent être l'un des suivants :

    VARCHAR2(n)
    NUMBER(n)
    NUMBER(p,s)
    NUMBER
    DATE
    TIMESTAMP(9)
  • Le délimiteur d'enregistrement par défaut est detected newline. Avec detected newline, DBMS_CLOUD tente de trouver automatiquement le caractère de saut de ligne correct à utiliser comme délimiteur d'enregistrement. DBMS_CLOUD recherche d'abord le caractère de saut de ligne Windows \r\n. S'il trouve le caractère de saut de ligne Windows, celui-ci est utilisé comme délimiteur d'enregistrement pour tous les fichiers de la procédure. S'il ne trouve pas le caractère de saut de ligne Windows, DBMS_CLOUD recherche le caractère de saut de ligne UNIX/Linux \n et, s'il le trouve, il utilise \n comme délimiteur d'enregistrement pour tous les fichiers de la procédure. Si les fichiers sources utilisent une combinaison de différents délimiteurs d'enregistrement, une erreur du type "KUP-04020: found record longer than buffer size supported" peut s'afficher. Dans ce cas, vous devez modifier les fichiers sources pour qu'ils utilisent le même délimiteur d'enregistrement ou spécifier uniquement les fichiers sources qui utilisent le même délimiteur d'enregistrement.

    Pour plus d'informations sur l'option de format recorddelmiter, voir Formats d'URI du service de stockage d'objets en nuage.

  • Les tables partitionnées externes que vous créez avec DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE comportent deux colonnes invisibles, file$path et file$name. Ces colonnes permettent d'identifier le fichier d'origine d'un enregistrement.

    • file$path : Spécifie le texte du chemin d'accès jusqu'au début du nom d'objet.

    • file$name : Spécifie le nom de l'objet, y compris tout le texte qui suit le nom du seau.

Exemples

Exemple d'utilisation du paramètre partitioning_clause :

BEGIN  
   DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
      table_name =>'PET1',  
      credential_name =>'OBJ_STORE_CRED',
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),
      column_list => 'col1 number, col2 number, col3 number',
      partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) location
                                    ( ''&base_URL//file_11.txt'')
                                 ,
                                 partition p2 values less than (2000) location
                                    ( ''&base_URL/file_21.txt'')
                                 ,
                                 partition p3 values less than (3000) location 
                                    ( ''&base_URL/file_31.txt'')
                                 )'
     );
   END;
/  


BEGIN
    DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
       table_name          => 'PET',
       format              => json_object('delimiter'value ','),
       column_list         => 'name varchar2(20), gender varchar2(10), salary number',
       partitioning_clause => 'partition by range (salary)
              (   -- Use test1.csv in the DEFAULT DIRECTORY DATA_PUMP_DIR 
                  partition p1 values less than (100) LOCATION (''test1.csv''),
                   -- Use test2.csv in a specified directory MY_DIR
                  partition p2 values less than (300) DEFAULT DIRECTORY MY_DIR LOCATION (''test2.csv'')        )'   );                       
END;                     
/

Exemple d'utilisation des paramètres file_uri_list et column_list avec des fichiers de données non structurés :

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
   table_name => 'MYSALES',
   credential_name => 'DEF_CRED_NAME',
   file_uri_list     => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.csv', 
   column_list       => 'product varchar2(100), units number, country varchar2(100), year number, month varchar2(2)', 
   field_list        => 'product, units', --[Because country, year and month are not in the file, they are not listed in the field list]
   format            => '{"type":"csv", "partition_columns":["country","year","month"]}');
END;
/ 

Exemple d'utilisation de file_uri_list sans le paramètre column_list avec des fichiers de données structurés :

BEGIN
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
  table_name => 'MYSALES',
  credential_name => 'DEF_CRED_NAME',
  DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
    table_name      => 'MYSALES',
    credential_name => 'DEF_CRED_NAME',
    file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/*.parquet',
    format          => 
        json_object('type' value 'parquet', 'schema' value 'first',
                    'partition_columns' value 
                          json_array(
                                json_object('name' value 'country', 'type' value 'varchar2(100)'),
                                json_object('name' value 'year', 'type' value 'number'),
                                json_object('name' value 'month', 'type' value 'varchar2(2)')
                          )
         )
    );
END;
/

Procédure CREATE_EXTERNAL_TABLE

Cette procédure crée une table externe pour des fichiers en nuage ou à partir de fichiers d'un répertoire. Cela vous permet d'exécuter des interrogations sur des données externes à partir d'une base de données autonome.

Syntaxe

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2,
    file_uri_list    IN CLOB,
    column_list      IN CLOB,
    field_list       IN CLOB DEFAULT,
    format           IN CLOB DEFAULT);

Paramètres

Paramètre Description

table_name

Nom de la table externe.

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

Ce paramètre n'est pas utilisé lorsque vous spécifiez un répertoire ou une URL d'hyperlien de table avec file_uri_list.

file_uri_list

Ce paramètre spécifie une liste délimitée par des virgules d'URI de fichier source ou un ou plusieurs répertoires et fichiers sources.

URI de fichier source en nuage

Vous pouvez utiliser des caractères génériques et des expressions rationnelles dans les noms de fichier des URI de fichier source en nuage.

Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre regexuri format est réglé à TRUE.

Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre regexuri est réglé à FALSE. Lorsque le paramètre regexuri est réglé à TRUE, les caractères "*" et "?" font partie du modèle d'expression rationnelle spécifié.

Les modèles d'expression rationnelle ne sont pris en charge que pour le nom de fichier ou le chemin du sous-dossier dans vos URI et la correspondance de modèle est identique à celle effectuée par la fonction REGEXP_LIKE.

Cette option n'est prise en charge qu'avec les tables externes créées dans un fichier du stockage d'objets.

Par exemple :

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.csv'

Le format des URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats des URI du service de stockage d'objets en nuage.

Voir REGEXP_LIKE Condition dans Informations de référence sur le langage SQL pour Oracle Database 19c ou Informations de référence sur le langage SQL pour Oracle Database 23ai pour plus d'informations sur la condition REGEXP_LIKE.

Répertoire

Vous pouvez spécifier un répertoire et un ou plusieurs noms de fichier ou utiliser une liste de répertoires et de noms de fichier séparés par des virgules. Le format de spécification d'un répertoire est :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données qui n'est pas sensible à la casse. Le nom du fichier est sensible à la casse.

Vous pouvez utiliser des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé comme caractère générique pour plusieurs caractères, "?" peut être utilisé pour un seul caractère. Par exemple :'MY_DIR:*" ou 'MY_DIR:test?'

Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple :'MY_DIR1:*, MY_DIR2:test?'

Utilisez des guillemets doubles pour indiquer un nom de répertoire sensible à la casse. Par exemple :'"my_dir1":*, "my_dir2":Test?'

Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple :'MY_DIR:''filename.ext'. Ceci spécifie que filename commence par un guillemet (').

column_list

Liste délimitée par des virgules de noms de colonne et de types de données pour la table externe.

field_list

Identifie les champs des fichiers sources et leur type de données. La valeur par défaut est NULL, ce qui signifie que les champs et leur type de données sont déterminés par le paramètre column_list. La syntaxe de cet argument est identique à celle de la clause field_list dans les tables externes Oracle Database standard. Pour plus d'informations sur field_list, voir ORACLE_LOADER Access Driver field_list sous field_definitions Clause dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

format

Options décrivant le format des fichiers sources. Pour connaître la liste des options et la façon de spécifier les valeurs, voir Paramètre de format.

Pour les fichiers au format Avro, ORC ou Parquet, voir Procédure CREATE_EXTERNAL_TABLE pour les fichiers Avro, ORC ou Parquet.

Notes d'utilisation

  • La procédure DBMS_CLOUD.CREATE_EXTERNAL_TABLE prend en charge les fichiers partitionnés externes dans les services de stockage d'objets en nuage pris en charge, notamment Azure Blob Storage.

    Les informations d'identification sont une propriété de niveau table. Par conséquent, les fichiers externes doivent se trouver dans le même magasin d'objets.

    Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

  • Le délimiteur d'enregistrement par défaut est detected newline. Avec detected newline, DBMS_CLOUD tente de trouver automatiquement le caractère de saut de ligne correct à utiliser comme délimiteur d'enregistrement. DBMS_CLOUD recherche d'abord le caractère de saut de ligne Windows \r\n. S'il trouve le caractère de saut de ligne Windows, celui-ci est utilisé comme délimiteur d'enregistrement pour tous les fichiers de la procédure. S'il ne trouve pas le caractère de saut de ligne Windows, DBMS_CLOUD recherche le caractère de saut de ligne UNIX/Linux \n et, s'il le trouve, il utilise \n comme délimiteur d'enregistrement pour tous les fichiers de la procédure. Si les fichiers sources utilisent une combinaison de différents délimiteurs d'enregistrement, une erreur du type "KUP-04020: found record longer than buffer size supported" peut s'afficher. Dans ce cas, vous devez modifier les fichiers sources pour qu'ils utilisent le même délimiteur d'enregistrement ou spécifier uniquement les fichiers sources qui utilisent le même délimiteur d'enregistrement.

    Voir Paramètre de format pour plus d'informations sur l'option de format recorddelimiter.

Exemple

BEGIN  
   DBMS_CLOUD.CREATE_EXTERNAL_TABLE(   
      table_name =>'WEATHER_REPORT_DOUBLE_DATE',   
      credential_name =>'OBJ_STORE_CRED',   
      file_uri_list =>'&base_URL/Charlotte_NC_Weather_History_Double_Dates.csv',
      format => json_object('type' value 'csv', 'skipheaders' value '1'),   
      field_list => 'REPORT_DATE DATE''mm/dd/yy'',                   
                     REPORT_DATE_COPY DATE ''yyyy-mm-dd'',
                     ACTUAL_MEAN_TEMP,                 
                     ACTUAL_MIN_TEMP,                 
                     ACTUAL_MAX_TEMP,                 
                     AVERAGE_MIN_TEMP,                    
                     AVERAGE_MAX_TEMP,     
                     AVERAGE_PRECIPITATION',   
      column_list => 'REPORT_DATE DATE,   
                     REPORT_DATE_COPY DATE,
                     ACTUAL_MEAN_TEMP NUMBER,  
                     ACTUAL_MIN_TEMP NUMBER,  
                     ACTUAL_MAX_TEMP NUMBER,  
                     AVERAGE_MIN_TEMP NUMBER,   
                     AVERAGE_MAX_TEMP NUMBER,                  
                     AVERAGE_PRECIPITATION NUMBER');
   END;
/ 

SELECT * FROM WEATHER_REPORT_DOUBLE_DATE where         
   actual_mean_temp > 69 and actual_mean_temp < 74

CREATE_EXTERNAL_TABLE Procédure pour Apache Iceberg

Cette procédure crée des tables externes pour les tables Apache Iceberg dans les configurations prises en charge.

Ces configurations spécifiques sont prises en charge :

Syntaxe

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2 DEFAULT NULL,
    file_uri_list    IN CLOB,
    column_list      IN CLOB DEFAULT NULL,
    field_list       IN CLOB DEFAULT NULL,
    format           IN CLOB DEFAULT NULL
);

Paramètres

Paramètre Description

table_name

Nom de la table externe.

credential_name

Nom des données d'identification utilisées pour accéder aux fichiers de données, aux fichiers de métadonnées et au catalogue Iceberg (si utilisé).

Pour les configurations AWS et OCI, les données d'identification doivent être créées comme décrit dans la procédure CREATE_CREDENTIAL.

Les données d'identification AWS Amazon Resource Names (ARN) ne sont actuellement pas prises en charge.

file_uri_list

Doit être NULL si un catalogue Iceberg est spécifié (voir le paramètre format ci-dessous). Si aucun catalogue d'iceberg n'est utilisé, file_uri_list doit contenir l'URI du fichier de métadonnées d'iceberg.

column_list

Doit être NULL, car les noms et les types de colonne sont automatiquement dérivés des métadonnées Iceberg.

Les noms de colonne correspondent aux noms trouvés dans les fichiers de données sous-jacents (Parquet, Avro, ORC). Les types de données Oracle sont dérivés à l'aide des mappages Parquet/Avro/ORC entre les types de données Iceberg et Parquet, Avro et ORC. Par conséquent, les utilisateurs ne peuvent pas spécifier column_list.

field_list

Doit être NULL, car les noms de colonne et les types de données sont automatiquement dérivés des métadonnées Iceberg.

format

Le paramètre format a une structure différente selon le type de table Iceberg et les informations utilisées pour créer la table externe, par exemple les informations d'un catalogue de données ou d'un URI de métadonnées directes.

Pour plus d'informations, voir Prise en charge d'Iceberg sur les exemples de flux de données OCI et Formats d'URI DBMS_CLOUD.

Exemple de paramètre de format pour les tables AWS Iceberg utilisant un catalogue AWS Glue

Voici un exemple de paramètre format lors de la création de tables sur une table AWS Iceberg à l'aide d'un catalogue AWS Glue :

format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg',
                   'protocol_config' value
                    json_object('iceberg_catalog_type' value 'aws_glue',
                                'iceberg_glue_region'  value 'glue region',
                                'iceberg_table_path'   value 'database_name.table_name'))); 
Où, le paramètre access_protocol contient un objet JSON avec deux éléments comme suit :
  • protocol_type : Doit être "iceberg"
  • protocol_config : Objet JSON imbriqué spécifiant les détails du catalogue iceberg.
    • iceberg_catalog_type : Doit être 'aws_glue'
    • iceberg_glue_region : Région du catalogue, par exemple 'us-west-1'
    • iceberg_table_path : Chemin glue database.glue table name.

Exemple de paramètre de format pour la table AWS Iceberg à l'aide d'un URI de fichier de métadonnées

Voici un exemple de paramètre format lors de la création de tables sur une table AWS Iceberg à l'aide d'un URI de fichier de métadonnées :
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')

Exemple de paramètre de format pour la table Iceberg OCI à l'aide du catalogue HadoopCatalog

Un exemple de paramètre format lors de la création de tables sur une table Iceberg OCI créée par le service de flux de données OCI à l'aide du catalogue HadoopCatalog est le suivant :
format => json_object('access_protocol' value
       json_object('protocol_type'   value 'iceberg',
                   'protocol_config' value
                   json_object('iceberg_catalog_type'  value 'hadoop',
                               'iceberg_warehouse'     value '<OCI folder URI>',
                               'iceberg_table_path'    value 'database_name.table_name')));
Où, le paramètre access_protocol contient un objet JSON avec deux éléments comme suit :
  • protocol_type : Doit être 'iceberg'
  • protocol_config : Objet JSON imbriqué spécifiant les détails du catalogue iceberg.
    • iceberg_catalog_type : Doit être 'hadoop'
    • iceberg_warehouse : Chemin du répertoire de l'entrepôt utilisé lors de la génération de la table, dans le format d'URI natif.
    • iceberg_table_path : Chemin database_name.table name utilisé lors de la création de la table.

Exemple de paramètre de format pour la table Iceberg OCI à l'aide de l'URI du fichier de métadonnées

Voici un exemple de paramètre format lors de la création de tables sur une table Iceberg OCI à l'aide de l'URI du fichier de métadonnées :
format => json_object('access_protocol' value
       json_object('protocol_type' value 'iceberg')
Où le paramètre access_protocol contient un objet JSON avec un élément comme suit :
  • protocol_type : Doit être 'iceberg'

CREATE_EXTERNAL_TABLE Procédure pour les fichiers Avro, ORC ou Parquet

Cette procédure, avec le type du paramètre format réglé à la valeur avro, orc, or parquet, crée une table externe avec des fichiers au format Avro, ORC ou Parquet dans le nuage ou dans un répertoire.

Cela vous permet d'exécuter des interrogations sur des données externes à partir d'une base de données autonome.

Syntaxe

DBMS_CLOUD.CREATE_EXTERNAL_TABLE (
    table_name       IN VARCHAR2,
    credential_name  IN VARCHAR2 DEFAULT NULL,
    file_uri_list    IN CLOB,
    column_list      IN CLOB,
    field_list       IN CLOB DEFAULT,
    format           IN CLOB DEFAULT);

Paramètres

Paramètre Description

table_name

Nom de la table externe.

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

Ce paramètre n'est pas utilisé lorsque vous spécifiez un répertoire avec file_uri_list.

file_uri_list

Ce paramètre spécifie une liste délimitée par des virgules d'URI de fichier source ou un ou plusieurs répertoires et fichiers sources.

URI de fichier source en nuage

Vous pouvez utiliser des caractères génériques et des expressions rationnelles dans les noms de fichier des URI de fichier source en nuage.

Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre regexuri format est réglé à TRUE.

Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre regexuri est réglé à FALSE. Lorsque le paramètre regexuri est réglé à TRUE, les caractères "*" et "?" font partie du modèle d'expression rationnelle spécifié.

Les modèles d'expression rationnelle ne sont pris en charge que pour le nom de fichier ou le chemin du sous-dossier dans vos URI et la correspondance de modèle est identique à celle effectuée par la fonction REGEXP_LIKE.

Cette option n'est prise en charge qu'avec les tables externes créées dans un fichier du stockage d'objets.

Par exemple :

file_uri_list => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.parquet'

Le format des URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats des URI du service de stockage d'objets en nuage.

Voir REGEXP_LIKE Condition dans Informations de référence sur le langage SQL pour Oracle Database 19c ou Informations de référence sur le langage SQL pour Oracle Database 23ai pour plus d'informations sur la condition REGEXP_LIKE.

Répertoire

Vous pouvez spécifier un répertoire et un ou plusieurs noms de fichier ou utiliser une liste de répertoires et de noms de fichier séparés par des virgules. Le format de spécification d'un répertoire est :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données qui n'est pas sensible à la casse. Le nom du fichier est sensible à la casse.

Vous pouvez utiliser des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé comme caractère générique pour plusieurs caractères, "?" peut être utilisé pour un seul caractère. Par exemple :'MY_DIR:*" ou 'MY_DIR:test?'

Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple :'MY_DIR1:*, MY_DIR2:test?'

Utilisez des guillemets doubles pour indiquer un nom de répertoire sensible à la casse. Par exemple :'"my_dir1":*, "my_dir2":Test?'

Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple :'MY_DIR:''filename.ext'. Ceci spécifie que filename commence par un guillemet (').

column_list

(Facultatif) Ce champ, s'il est indiqué, remplace le paramètre format->schema qui spécifie que le schéma, les colonnes et les types de données sont dérivés automatiquement. Voir le paramètre format pour plus de détails.

Lorsque column_list est spécifié pour la source Avro, ORC ou Parquet, les noms de colonne doivent correspondre aux colonnes du fichier. Les types de données Oracle doivent être mappés correctement aux types de données Avro, ORC ou Parquet.

Pour les fichiers Parquet, voir Mappage entre types de données Parquet et Oracle dans l'ensemble DBMS_CLOUD pour plus de détails.

Pour les fichiers ORC, voir Mappage entre types de données ORC et Oracle dans l'ensemble DBMS_CLOUD pour plus de détails.

Pour les fichiers Avro, voir Mappage entre types de données Avro et Oracle dans l'ensemble DBMS_CLOUD pour plus de détails.

field_list

Ignoré pour les fichiers Avro, ORC ou Parquet.

Les champs de la source correspondent aux colonnes de la table externe par nom. Les types de données sources sont convertis dans le type de données des colonnes de la table externe.

Pour les fichiers ORC, voir Mappage entre types de données ORC et Oracle dans l'ensemble DBMS_CLOUD

Pour les fichiers Parquet, voir Mappage entre types de données Parquet et Oracle dans l'ensemble DBMS_CLOUD pour plus de détails.

Pour les fichiers Avro, voir Mappage entre types de données Avro et Oracle dans l'ensemble DBMS_CLOUD pour plus de détails.

format

Pour plus de détails sur les fichiers sources type d'Avro, ORC ou Parquet, voir DBMS_CLOUD Options de format de l'ensemble pour Avro, ORC ou Parquet.

Exemples ORC

format => '{"type":"orc", "schema": "all"}'
format => json_object('type' value 'orc', 'schema' value 'first')

Exemples Avro

format => '{"type":"avro", "schema": "all"}'
format => json_object('type' value 'avro', 'schema' value 'first')

Exemples Parquet

format => '{"type":"parquet", "schema": "all"}'
format => json_object('type' value 'parquet', 'schema' value 'first')

Mappage des noms de colonne Avro, ORC ou Parquet aux noms de colonne Oracle

Voir Mappage entre noms de colonne Avro, ORC et Parquet et noms de colonne Oracle dans l'ensemble DBMS_CLOUD pour plus d'informations sur le mappage de noms de colonne et l'utilisation de la conversion de noms de colonne dans Oracle SQL.

Procédure CREATE_EXTERNAL_TEXT_INDEX

Cette procédure crée un index de texte sur les fichiers de stockage d'objets.

La procédure CREATE_EXTERNAL_TEXT_INDEX crée un index de texte sur les fichiers de stockage d'objets spécifiés à l'emplacement location_uri. L'index est actualisé à intervalles réguliers, pour tous les nouveaux ajouts ou suppressions effectués avec des fichiers sur l'URI d'emplacement.

Syntaxe

DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
      credential_name  IN  VARCHAR2 DEFAULT NULL,
      location_uri     IN  VARCHAR2,
      index_name       IN  VARCHAR2,
      format           IN  CLOB     DEFAULT NULL
);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification permettant d'accéder à l'emplacement Cloud Object Storage. Pour les URI de seau publics, préauthentifiés ou pré-signés, une valeur NULL peut être spécifiée.

Si vous ne fournissez pas de valeur pour credential_name, credential_name est réglé à une valeur pour NULL.

location_uri

Indique l'URI du seau ou du dossier du magasin d'objets.

Ce paramètre est obligatoire.

Le format des URI dépend du service de stockage d'objets en nuage. Pour plus d'informations, voir Formats d'URI des services de stockage d'objets en nuage de l'ensemble DBMS_CLOUD.

index_name Spécifie le nom de l'index que vous créez sur les fichiers situés à l'emplacement location_uri.

Ce paramètre est obligatoire.

format

Spécifie des options de configuration supplémentaires. Les options sont spécifiées en tant que chaîne JSON.

Les options de formatage prises en charge sont les suivantes :

refresh_rate : Spécifie la fréquence en minutes à laquelle l'index local est actualisé. Les nouveaux chargements et les suppressions de fichier entraînent une actualisation de l'index. La valeur par défaut est de 5 minutes.

binary_files : Spécifie si le contenu des fichiers à indexer est binaire. Par exemple, PDF, MS-Word, La valeur par défaut est FALSE.

stop_words : Spécifie une liste de mots d'arrêt qui peuvent être fournis lorsque vous créez des index.

La valeur stop_words indique s'il s'agit d'une liste de mots vides ou d'une table de mots vides. Lorsqu'un tableau JSON est fourni, le paramètre de mots d'arrêt est traité comme une liste, sinon le paramètre de mots d'arrêt est traité comme un nom de table dont la colonne "STOP_WORDS" est utilisée pour lire dans la liste de mots d'arrêt.

Vous pouvez spécifier des mots d'arrêt à l'aide des méthodes suivantes :

  • Tableau JSON : Par exemple : format := '{"stop_words":["king","queen"]}'
  • Nom de la table de mots vides : Par exemple : format := '{"stop_words":"STOP_WORDS_TABLE"}'

Si vous ne fournissez pas de paramètre format, format est réglé à une valeur NULL.

Exemple

BEGIN 
DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX (
        credential_name => 'DEFAULT_CREDENTIAL',
        location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/ts_data/'
        index_name      => 'EMP',
        format          => JSON_OBJECT ('refresh_rate' value 10)
);
END;
/

Procédure CREATE_HYBRID_PART_TABLE

Cette procédure crée une table partitionnée hybride. Cela vous permet d'exécuter des interrogations sur des données partitionnées hybrides à partir d'Autonomous Database à l'aide d'objets et de fichiers de base de données dans le nuage ou d'objets et de fichiers de base de données dans un répertoire.

Syntaxe

DBMS_CLOUD.CREATE_HYBRID_PART_TABLE (
    table_name           IN VARCHAR2,
    credential_name      IN VARCHAR2,
    partitioning_clause  IN CLOB,
    column_list          IN CLOB,
    field_list           IN CLOB DEFAULT,
    format               IN CLOB DEFAULT);

Paramètres

Paramètre Description

table_name

Nom de la table externe.

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

partitioning_clause

Spécifie la clause de partitionnement complète, y compris les informations d'emplacement des partitions individuelles.

Pour utiliser des répertoires, la clause de partitionnement prend en charge les valeurs LOCATION et DEFAULT DIRECTORY.

Vous pouvez utiliser des caractères génériques et des expressions rationnelles dans les noms de fichier des URI de fichier source en nuage.

Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre regexuri format est réglé à TRUE.

Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre regexuri est réglé à FALSE. Lorsque le paramètre regexuri est réglé à TRUE, les caractères "*" et "?" font partie du modèle d'expression rationnelle spécifié.

Les modèles d'expression rationnelle ne sont pris en charge que pour le nom de fichier ou le chemin du sous-dossier dans vos URI et la correspondance de modèle est identique à celle effectuée par la fonction REGEXP_LIKE. Les modèles d'expression rationnelle ne sont pas pris en charge pour les noms de répertoire.

Par exemple :

partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) external location
				    ( ''https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o(/)*year=[0-9]+(/)*month=[0-9]+(/)*[a-z]+[1-3]??.txt''),….

Voir REGEXP_LIKE Condition dans Informations de référence sur le langage SQL pour Oracle Database 19c ou Informations de référence sur le langage SQL pour Oracle Database 23ai pour plus d'informations sur la condition REGEXP_LIKE.

column_list

Liste délimitée par des virgules de noms de colonne et de types de données pour la table externe.

field_list

Identifie les champs des fichiers sources et leur type de données. La valeur par défaut est NULL, ce qui signifie que les champs et leur type de données sont déterminés par le paramètre column_list. La syntaxe de cet argument est identique à celle de la clause field_list dans les tables externes Oracle standard. Pour plus de renseignements, consultez la page field_list dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

format

Options décrivant le format des fichiers sources. Pour connaître la liste des options et la façon de spécifier les valeurs, voir Paramètre de format.

Notes d'utilisation

  • La procédure DBMS_CLOUD.CREATE_HYBRID_PART_TABLE prend en charge les fichiers partitionnés externes dans les services de stockage d'objets en nuage pris en charge, notamment Azure Blob Storage.

    Les informations d'identification sont une propriété de niveau table. Par conséquent, les fichiers externes doivent se trouver dans le même magasin d'objets.

    Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

  • La procédure DBMS_CLOUD.CREATE_HYBRID_PART_TABLE prend en charge les fichiers partitionnés hybrides dans des répertoires, dans un système de fichiers local ou dans un système de fichiers réseau.

  • Les tables partitionnées externes que vous créez avec DBMS_CLOUD.CREATE_HYBRID_PART_TABLE comportent deux colonnes invisibles, file$path et file$name. Ces colonnes permettent d'identifier le fichier d'origine d'un enregistrement.

    • file$path : Spécifie le texte du chemin d'accès jusqu'au début du nom d'objet.

    • file$name : Spécifie le nom de l'objet, y compris tout le texte qui suit le nom du seau.

Exemples

BEGIN  
   DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
      table_name =>'HPT1',  
      credential_name =>'OBJ_STORE_CRED',  
      format => json_object('delimiter' value ',', 'recorddelimiter' value 'newline', 'characterset' value 'us7ascii'),  
      column_list => 'col1 number, col2 number, col3 number',
      partitioning_clause => 'partition by range (col1)
                                (partition p1 values less than (1000) external location
                                    ( ''&base_URL/file_11.txt'')
                                 ,
                                 partition p2 values less than (2000) external location
                                    ( ''&base_URL/file_21.txt'')
                                 ,
                                 partition p3 values less than (3000)
                                 )'
     );
   END;
/ 


BEGIN
   DBMS_CLOUD.CREATE_HYBRID_PART_TABLE(
    table_name  => 'HPT1',
    format      => json_object('delimiter'value ',', 'recorddelimiter'value 'newline'),
    column_list => 'NAME VARCHAR2(30), GENDER VARCHAR2(10), BALANCE number',
    partitioning_clause => 'partition by range (B  2  ALANCE)
               (partition p1 values less than (1000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Scott_male_1000.csv''),
                partition p2 values less than (2000) external DEFAULT DIRECTORY DATA_PUMP_DIR LOCATION (''Mary_female_3000.csv''),
                partition p3 values less than (3000))' );
END;
/

Procédure DELETE_ALL_OPERATIONS

Cette procédure efface toutes les opérations de chargement de données enregistrées dans la table user_load_operations de votre schéma ou toutes les opérations de chargement de données du type spécifié par le paramètre type.

Syntaxe

DBMS_CLOUD.DELETE_ALL_OPERATIONS (
	type      IN VARCHAR DEFAULT NULL);

Paramètres

Paramètre Description

type

Indique le type d'opération à supprimer. Les valeurs de type se trouvent dans la colonne TYPE de la table user_load_operations.

Si aucun type n'est spécifié, toutes les rangées sont supprimées.

Note d'utilisation

  • DBMS_CLOUD.DELETE_ALL_OPERATIONS ne supprime pas les opérations en cours d'exécution (opérations ayant le statut "En cours d'exécution").

Procédure DELETE_FILE

Cette procédure supprime le fichier spécifié du répertoire spécifié dans la base de données autonome.

Syntaxe

 DBMS_CLOUD.DELETE_FILE ( 
       directory_name     IN VARCHAR2,
       file_name          IN VARCHAR2,
       force              IN BOOLEAN DEFAULT FALSE); 

Paramètres

Paramètre Description

directory_name

Nom du répertoire dans l'instance de base de données autonome.

file_name

Nom du fichier à supprimer.

force

Ignorer et ne pas signaler les erreurs si le fichier n'existe pas. Les valeurs valides sont les suivantes : TRUE et FALSE. La valeur par défaut est FALSE.

Note :

Pour exécuter DBMS_CLOUD.DELETE_FILE avec un utilisateur autre qu'ADMIN, vous devez accorder à cet utilisateur les droits d'écriture sur le répertoire qui contient le fichier.Par exemple, exécutez la commande suivante en tant qu'ADMIN pour accorder les privilèges d'écriture à atpc_user :
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;

Exemple

BEGIN
   DBMS_CLOUD.DELETE_FILE(
      directory_name =>  'DATA_PUMP_DIR',
      file_name => 'exp1.dmp' );
   END;
/ 

Procédure DELETE_OBJECT

Cette procédure supprime l'objet spécifié du magasin d'objets.

Syntaxe

DBMS_CLOUD.DELETE_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       force                IN BOOLEAN DEFAULT FALSE);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

object_uri

URI d'objet ou de fichier de l'objet à supprimer. Le format de l'URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats d'URI du service de stockage d'objets en nuage.

force

Ignorer et ne pas signaler les erreurs si l'objet n'existe pas. Les valeurs valides sont les suivantes : TRUE et FALSE. La valeur par défaut est FALSE.

Exemple

BEGIN
   DBMS_CLOUD.DELETE_OBJECT(
       credential_name => 'DEF_CRED_NAME',
       object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.dmp' );
   END;
/ 

Procédure DELETE_OPERATION

Cette procédure efface les entrées de chargement de données pour l'ID opération spécifié journalisé dans les tables user_load_operations ou dba_load_operations de votre schéma.

Syntaxe

DBMS_CLOUD.DELETE_OPERATION (
	id      IN NUMBER);

Paramètres

Paramètre Description

id

Indique l'ID opération associé aux entrées de fichier journal à supprimer.

Exemple

SELECT id FROM user_load_operations WHERE type LIKE '%BAD%';
EXEC DBMS_CLOUD.DELETE_OPERATION(id);

Procédure DROP_EXTERNAL_TEXT_INDEX

Cette procédure supprime l'index de texte sur les fichiers de stockage d'objets.

La procédure DROP_EXTERNAL_TEXT_INDEX supprime l'index spécifié créé avec la procédure CREATE_EXTERNAL_TEXT_INDEX.

Syntaxe

DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
      index_name       IN  VARCHAR2,
);

Paramètres

Paramètre Description
index_name

Indique le nom de l'index que vous supprimez.

Le nom de l'index doit correspondre au nom fourni lors de la création de l'index.

Ce paramètre est obligatoire.

Exemple

BEGIN 
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX (
        index_name => 'EMP',
);
END;
/

Procédure EXPORT_DATA

Cette procédure exporte les données d'Autonomous Database en fonction du résultat d'une interrogation. Cette procédure est surchargée et prend en charge l'écriture de fichiers dans le nuage ou dans un répertoire.

En fonction du paramètre format type, la procédure exporte les fichiers vers le nuage ou vers un emplacement de répertoire en tant que fichiers texte au format CSV, JSON, Parquet ou XML.

Syntaxe

DBMS_CLOUD.EXPORT_DATA (
      credential_name   IN VARCHAR2 DEFAULT NULL,
      file_uri_list     IN CLOB,
      format            IN CLOB,
      query             IN CLOB);

DBMS_CLOUD.EXPORT_DATA (
      credential_name   IN VARCHAR2 DEFAULT NULL,
      file_uri_list     IN CLOB DEFAULT NULL,
      format            IN CLOB DEFAULT NULL,
      query             IN CLOB DEFAULT NULL,
      operation_id      OUT NOCOPY NUMBER);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

Lorsque le paramètre de données d'identification n'est pas inclus, la sortie est indiquée dans un répertoire.

file_uri_list

Il existe différents formulaires, selon la valeur du paramètre de format et selon que vous incluez ou non un paramètre de données d'identification :
  • Lorsque la valeur type du paramètre format est json, le fichier JSON du magasin d'objets ou de l'emplacement de répertoire spécifié est enregistré avec un nom de fichier généré en fonction de la valeur du paramètre file_uri_list. Pour plus d'informations, voir Attribution de nom de fichier pour une sortie de texte (CSV, JSON, Parquet ou XML).

  • Lorsque la valeur type du paramètre format est datapump, file_uri_list est une liste de fichiers de vidage délimitée par des virgules. Indique les fichiers à créer dans le magasin d'objets. L'utilisation de caractères génériques et de substitution n'est pas prise en charge dans file_uri_list.

  • Lorsque le paramètre credential_name n'est pas spécifié, vous indiquez un nom de répertoire dans file_uri_list.

Le format des URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats d'URI du service de stockage d'objets en nuage.

format

Chaîne JSON qui fournit des options de format d'exportation.

L'option prise en charge est :

  • type : L'option type format est obligatoire et doit avoir l'une des valeurs suivantes : csv | datapump | json | parquet | xml.

Voir DBMS_CLOUD Options de format de l'ensemble pour EXPORT_DATA.

query

Utilisez ce paramètre pour spécifier un énoncé SELECT afin que seules les données requises soient exportées. L'interrogation détermine le contenu des fichiers que vous exportez en tant que fichiers texte CSV, JSON, Parquet ou XML ou fichiers de vidage. Par exemple :

SELECT warehouse_id, quantity FROM inventories

Lorsque la valeur format type est json, chaque résultat d'interrogation est vérifié et, s'il ne s'agit pas de JSON, comme déterminé avec la fonction : JSON_OBJECT_T.parse(), DBMS_CLOUD.EXPORT_DATA transforme l'interrogation pour inclure la fonction JSON_OBJECT afin de convertir la rangée en JSON. See JSON_OBJECT in Oracle Database 19c SQL Language Reference or Oracle Database 23ai SQL Language Reference and JSON_OBJECT_T Object Type in Oracle Database 19c PL/SQL Packages and Types Reference or Oracle Database 23ai PL/SQL Packages and Types Reference for more information.

Par exemple :

SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT warehouse_id, quantity FROM inventories)

operation_id

Utilisez ce paramètre pour suivre la progression et le statut final de l'opération d'exportation avec l'ID correspondant dans la vue USER_LOAD_OPERATIONS.

Notes d'utilisation :

  • La valeur du paramètre query que vous fournissez peut être une interrogation avancée, si nécessaire, par exemple une interrogation comportant des jointures ou des sous-interrogations.

  • Selon le paramètre de format spécifié, DBMS_CLOUD.EXPORT_DATA retourne les résultats de l'interrogation spécifiée dans le magasin d'objets en nuage ou vers un emplacement de répertoire dans les formats de fichier CSV, JSON, Parquet ou XML.

    Voir Exporter des données vers le magasin d'objets en tant que texte à l'aide de DBMS_CLOUD.EXPORT_DATA et Exporter des données vers un répertoire à l'aide de DBMS_CLOUD.EXPORT_DATA pour plus d'informations sur l'utilisation de DBMS_CLOUD.EXPORT_DATA avec les fichiers de sortie CSV, JSON, Parquet ou XML.

  • Pour la sortie CSV, JSON ou XML, par défaut lorsqu'un fichier généré contient 10 Mo de données, un nouveau fichier de sortie est créé. Toutefois, si vous disposez de moins de 10 Mo de données de résultat, vous pouvez avoir plusieurs fichiers de sortie, selon le service de base de données et le nombre d'ECPU (OCPU si votre base de données utilise des OCPU) pour l'instance Autonomous Database.

    Pour plus d'informations, voir Attribution de nom de fichier pour une sortie de texte (CSV, JSON, Parquet ou XML).

    La taille de fragment par défaut du fichier de sortie est de 10 Mo pour CSV, JSON ou XML. Vous pouvez modifier cette valeur à l'aide de l'option maxfilesize du paramètre format. Pour plus d'informations, voir DBMS_CLOUD Options de format de l'ensemble pour EXPORT_DATA.

  • Pour la sortie Parquet, chaque fichier généré est inférieur à 128 Mo et plusieurs fichiers de sortie peuvent être générés. Toutefois, si vous disposez de moins de 128 Mo de données de résultat, vous pouvez avoir plusieurs fichiers de sortie en fonction du service de base de données et du nombre d'ECPU (OCPU si votre base de données utilise des OCPU) pour l'instance Autonomous Database.

    Pour plus d'informations, voir Attribution de nom de fichier pour une sortie de texte (CSV, JSON, Parquet ou XML).

  • Le format de sortie parquet ne peut être utilisé qu'avec des services de base de données élevés et moyens pour les base de données Autonomous Database sur une infrastructure Exadata dédiée.

Notes d'utilisation pour DBMS_CLOUD.EXPORT_DATA avec sortie dans un répertoire

  • Le répertoire indiqué doit exister et vous devez être connecté en tant qu'utilisateur ADMIN ou disposer de l'accès WRITE au répertoire.

  • DBMS_CLOUD.EXPORT_DATA ne crée aucun répertoire.

  • La procédure ne remplace pas les fichiers. Par exemple, si un fichier de vidage dans file_uri_list existe, DBMS_CLOUD.EXPORT_DATA signale une erreur telle que :

    ORA-31641: unable to create dump file  "/u02/exports/123.dmp"
    ORA-27038: created file already exists

Exemples

L'exemple suivant montre DBMS_CLOUD.EXPORT_DATA avec l'option type du paramètre format réglée à json :

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.json', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'json', 'compression' value 'gzip'));
     );
   END;
/  

L'exemple suivant montre DBMS_CLOUD.EXPORT_DATA avec l'option type du paramètre format réglée à xml :

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp1.xml', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'xml', 'compression' value 'gzip'));
     );
   END;
/

L'exemple suivant montre DBMS_CLOUD.EXPORT_DATA avec l'option type du paramètre format réglée à csv :

BEGIN  
   DBMS_CLOUD.EXPORT_DATA(
      credential_name => 'OBJ_STORE_CRED',
      file_uri_list   => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp.csv', 
      query           => 'SELECT * FROM DEPT',
      format          => JSON_OBJECT('type' value 'csv', 'delimiter' value '|', 'compression' value 'gzip', 'header' value true ));
     );
   END;
/  

Procédure et fonction GET_OBJECT

Cette procédure est surchargée. Le formulaire de cette procédure lit un objet dans le service de stockage d'objets en nuage et le copie dans la base de données autonome. Le formulaire de la fonction lit un objet dans le service de stockage d'objets en nuage et retourne un objet BLOB dans la base de données autonome.

Syntaxe

DBMS_CLOUD.GET_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       directory_name       IN VARCHAR2,
       file_name            IN VARCHAR2 DEFAULT  NULL,
       startoffset          IN NUMBER DEFAULT  0,
       endoffset            IN NUMBER DEFAULT  0,
       compression          IN VARCHAR2 DEFAULT  NULL);


DBMS_CLOUD.GET_OBJECT(
       credential_name      IN VARCHAR2 DEFAULT NULL,
       object_uri           IN VARCHAR2,
       startoffset          IN NUMBER DEFAULT  0,
       endoffset            IN NUMBER DEFAULT  0,
       compression          IN VARCHAR2 DEFAULT  NULL)
RETURN BLOB;

Paramètres

Paramètre Description

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

object_uri

URI d'objet ou de fichier. Le format de l'URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats d'URI du service de stockage d'objets en nuage.

directory_name

Nom du répertoire dans la base de données.

Note de bas de page 1

file_name

Spécifie le nom du fichier à créer. Si le nom du fichier n'est pas spécifié, la valeur qui suit la dernière barre oblique du paramètre object_uri est utilisée. Pour les cas spéciaux, par exemple lorsque le nom du fichier contient des barres obliques, utilisez le paramètre file_name.

startoffset

Décalage, en octets, à partir duquel la procédure commence la lecture.

endoffset

Décalage, en octets, auquel la procédure s'arrête de lire.

compression

Indique la compression utilisée pour stocker l'objet. Lorsque compression est réglé à ‘AUTO’, le fichier n'est pas compressé (la valeur ‘AUTO’ implique que l'objet spécifié avec object_uri est compressé à l'aide de Gzip).

Note de bas de page 1

Note :

Pour exécuter DBMS_CLOUD.GET_OBJECT avec un utilisateur autre qu'ADMIN, vous devez accorder à cet utilisateur les privilèges WRITE sur le répertoire. Par exemple, exécutez la commande suivante en tant qu'ADMIN pour accorder les privilèges d'écriture à atpc_user :

GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;

Valeurs retournées

Le formulaire de la fonction lit à partir du magasin d'objets et DBMS_CLOUD.GET_OBJECT retourne un objet BLOB.

Exemples

BEGIN 
   DBMS_CLOUD.GET_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt',
     directory_name => 'DATA_PUMP_DIR'); 
END;
/

Pour lire les données de type caractère dans un fichier du magasin d'objets :

SELECT to_clob(
     DBMS_CLOUD.GET_OBJECT(
       credential_name => 'OBJ_STORE_CRED',
       object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/file.txt'))
FROM DUAL;

Pour ajouter une image stockée dans le magasin d'objets dans un objet BLOB de la base de données :


DECLARE
   l_blob BLOB := NULL;
BEGIN
   l_blob := DBMS_CLOUD.GET_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/MyImage.gif' );
END;
/

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Fonction LIST_FILES

Cette fonction répertorie les fichiers du répertoire indiqué. Les résultats comprennent les noms des fichiers et des métadonnées supplémentaires sur ceux-ci, telles que leur taille en octets, l'horodatage de la création et l'horodatage de la dernière modification.

Syntaxe

DBMS_CLOUD.LIST_FILES (
	directory_name      IN VARCHAR2)
       RETURN TABLE;

Paramètres

Paramètre Description

directory_name

Nom du répertoire dans la base de données.

Notes d'utilisation

  • Pour exécuter DBMS_CLOUD.LIST_FILES avec un utilisateur autre qu'ADMIN, vous devez accorder à cet utilisateur les droits de lecture sur le répertoire.Par exemple, exécutez la commande suivante en tant qu'ADMIN pour accorder les privilèges de lecture à atpc_user :

    GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;
  • Il s'agit d'une fonction de table en pipeline avec type de retour DBMS_CLOUD_TYPES.list_object_ret_t.

  • DBMS_CLOUD.LIST_FILES n'obtient pas la valeur du total de contrôle et retourne NULL pour ce champ.

Exemple

Il s'agit d'une fonction en pipeline qui retourne une rangée pour chaque fichier. Par exemple, utilisez l'interrogation suivante pour utiliser cette fonction :

SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR');

OBJECT_NAME       BYTES   CHECKSUM      CREATED              LAST_MODIFIED
------------ ---------- ----------    ---------------------  ---------------------
cwallet.sso        2965               2018-12-12T18:10:47Z   2019-11-23T06:36:54Z

Fonction LIST_OBJECTS

Cette fonction liste les objets situés dans l'emplacement spécifié du magasin d'objets. Les résultats comprennent les noms des objets et des métadonnées supplémentaires sur ceux-ci, telles que leur taille, la somme de contrôle, l'horodatage de la création et l'horodatage de la dernière modification.

Syntaxe

DBMS_CLOUD.LIST_OBJECTS (
       credential_name      IN VARCHAR2,
       location_uri         IN VARCHAR2)
   RETURN TABLE;

Paramètres

Paramètre Description

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

location_uri

URI d'objet ou de fichier. Le format de l'URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats d'URI du service de stockage d'objets en nuage.

Notes d'utilisation

  • Selon les fonctions du magasin d'objets, DBMS_CLOUD.LIST_OBJECTS ne retourne pas de valeurs pour certains attributs et la valeur retournée pour le champ est NULL dans ce cas.

    Tous les magasins d'objets pris en charge retournent des valeurs pour les champs OBJECT_NAME, BYTES et CHECKSUM.

    Le tableau suivant présente la prise en charge des champs CREATED et LAST_MODIFIED par magasin d'objets :

    Magasin d'objets CREATED LAST_MODIFIED
    Magasin natif Oracle Cloud Infrastructure Retourne un horodatage Retourne un horodatage
    Magasin Swift Oracle Cloud Infrastructure Retourne NULL Retourne un horodatage
    Amazon S3 Retourne NULL Retourne un horodatage
    Compatible avec Amazon S3 Retourne NULL Retourne un horodatage
    Azure Retourne un horodatage Retourne un horodatage
  • La valeur du total de contrôle est le total de contrôle MD5. Il s'agit d'un nombre hexadécimal de 32 caractères qui est calculé sur le contenu de l'objet.

  • Il s'agit d'une fonction de table en pipeline avec type de retour DBMS_CLOUD_TYPES.list_object_ret_t.

Exemple

Il s'agit d'une fonction en pipeline qui retourne une rangée pour chaque objet. Par exemple, utilisez l'interrogation suivante pour utiliser cette fonction :

SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('OBJ_STORE_CRED', 
    'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/');


OBJECT_NAME   BYTES              CHECKSUM                       CREATED         LAST_MODIFIED
------------ ---------- -------------------------------- --------------------- --------------------
cwallet.sso   2965      2339a2731ba24a837b26d344d643dc07 2019-11-23T06:36:54Z          

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Procédure MOVE_OBJECT

Cette procédure déplace un objet d'un seau ou d'un dossier de stockage d'objets en nuage vers un autre.

Le seau ou dossier source et cible peut se trouver dans le même fournisseur de magasin d'objets en nuage ou dans un autre.

Lorsque la source et la cible se trouvent dans des magasins d'objets distincts ou ont des comptes différents avec le même fournisseur de services en nuage, vous pouvez donner des noms de données d'identification distincts pour les emplacements source et cible.

Le nom des données d'identification sources est également utilisé par défaut par l'emplacement cible lorsque le nom des données d'identification cibles n'est pas indiqué.

Syntaxe

DBMS_CLOUD.MOVE_OBJECT (
    source_credential_name  IN  VARCHAR2 DEFAULT NULL,
    source_object_uri       IN  VARCHAR2,
    target_object_uri       IN  VARCHAR2,
    target_credential_name  IN  VARCHAR2 DEFAULT NULL
);

Paramètres

Paramètre Description

source_credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage source.

Si vous ne fournissez pas de valeur pour source_credential_name, credential_name est réglé à NULL.

source_object_uri

Indique l'URI, qui pointe vers l'emplacement du seau ou du dossier de stockage d'objets source.

Ce paramètre est obligatoire.

Le format des URI dépend du service de stockage d'objets en nuage. Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

target_object_uri

Indique l'URI du seau ou dossier de stockage d'objets cible, où les fichiers doivent être déplacés.

Ce paramètre est obligatoire.

Le format des URI dépend du service de stockage d'objets en nuage. Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

target_credential_name

Nom des données d'identification permettant d'accéder à l'emplacement de stockage d'objets en nuage cible.

Si vous ne fournissez pas de valeur target_credential_name, target_object_uri est réglé à la valeur source_credential_name.

Exemple

BEGIN 
DBMS_CLOUD.MOVE_OBJECT (
    source_credential_name => 'OCI_CRED',
    source_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/bgfile.csv',
    target_object_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/myfile.csv'
);
END;
/

Procédure PUT_OBJECT

Cette procédure est surchargée. Sous une forme, elle copie un fichier d'une base de données autonome vers le stockage d'objets en nuage. Sous une autre, elle copie un objet BLOB depuis la base de données autonome vers le stockage d'objets en nuage.

Syntaxe

DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       directory_name       IN VARCHAR2,
       file_name            IN VARCHAR2
       compression          IN VARCHAR2 DEFAULT  NULL);


DBMS_CLOUD.PUT_OBJECT (
       credential_name      IN VARCHAR2,
       object_uri           IN VARCHAR2,
       contents             IN BLOB
       compression          IN VARCHAR2 DEFAULT  NULL);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage.

object_uri

URI d'objet ou de fichier. Le format de l'URI dépend du service de stockage d'objets en nuage que vous utilisez. Pour plus de détails, voir Formats d'URI du service de stockage d'objets en nuage.

directory_name

Nom du répertoire dans la base de données autonome.

Note de bas de page 1

contents

Spécifie le fichier BLOB à copier d'Autonomous Database vers le stockage d'objets en nuage.

file_name

Nom du fichier dans le répertoire indiqué.

compression

Indique la compression utilisée pour stocker l'objet.

Valeur par défaut : NULL

Note de bas de page 1

Note :

Pour exécuter DBMS_CLOUD.PUT_OBJECT avec un utilisateur autre qu'ADMIN, vous devez accorder à cet utilisateur les droits de lecture sur le répertoire. Par exemple, exécutez la commande suivante en tant qu'ADMIN pour accorder les privilèges de lecture à atpc_user :

GRANT READ ON DIRECTORY data_pump_dir TO atpc_user;

Exemple

Pour traiter les données BLOB après le traitement dans la base de données, puis stocker les données directement dans un fichier du magasin d'objets :

DECLARE
      my_blob_data BLOB;
BEGIN 
 /* Some processing producing BLOB data and populating my_blob_data */
DBMS_CLOUD.PUT_OBJECT(
     credential_name => 'OBJ_STORE_CRED',
     object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/my_new_file',
     contents => my_blob_data)); 
END;
/

Notes d'utilisation

Selon votre stockage d'objets en nuage, la taille de l'objet que vous transférez est limitée comme suit :

Service de stockage d'objets en nuage Limite de taille d'objet transféré

Service de stockage d'objets pour Oracle Cloud Infrastructure

50 Go

Amazon S3

5 Go

Azure Blob Storage

256 Mo

Compatible avec Amazon S3

Définie par le fournisseur du magasin d'objets. Pour plus d'informations, consultez la documentation du fournisseur.

Le service de stockage d'objets pour Oracle Cloud Infrastructure ne permet pas d'écrire des fichiers dans un seau public sans fournir de données d'identification (Oracle Cloud Infrastructure permet aux utilisateurs de télécharger des objets à partir de seaux publics). Ainsi, vous devez indiquer un nom de données d'identification avec des données d'identification valides pour stocker un objet dans un seau public Oracle Cloud Infrastructure à l'aide de PUT_OBJECT.

Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

Procédure SYNC_EXTERNAL_PART_TABLE

Cette procédure simplifie la mise à jour d'une table partitionnée externe à partir de fichiers en nuage. Exécutez cette procédure lorsque de nouvelles partitions sont ajoutées ou lorsque des partitions sont supprimées de la source du magasin d'objets pour la table partitionnée externe.

Syntaxe

DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE (
	table_name        IN VARCHAR2,
	schema_name       IN VARCHAR2 DEFAULT,
	update_columns    IN BOOLEAN DEFAULT);

Paramètres

Paramètre Description

table_name

Nom de la table cible. La table cible doit être créée avant l'exécution de DBMS_CLOUD.SYNC_EXTERNAL_PART_TABLE.

schema_name

Nom du schéma dans lequel réside la table cible. La valeur par défaut est NULL, ce qui signifie que la table cible se trouve dans le même schéma que l'utilisateur qui exécute la procédure.

update_columns

Les nouveaux fichiers peuvent introduire une modification du schéma. Les mises à jour prises en charge incluent les nouvelles colonnes et les colonnes supprimées. Les mises à jour de colonnes existantes, par exemple une modification du type de données, génèrent des erreurs.

Valeur par défaut : Faux :

Procédure VALIDATE_EXTERNAL_PART_TABLE

Cette procédure valide les fichiers sources pour une table partitionnée externe, génère des informations de journal et stocke les rangées qui ne correspondent pas aux options de format spécifiées pour la table externe dans une table badfile sur Autonomous Database. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id.

Syntaxe

DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
       table_name                 IN VARCHAR2,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_EXTERNAL_PART_TABLE (
       table_name                 IN VARCHAR2,
       operation_id               OUT NUMBER,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);

Paramètres

Paramètre Description

table_name

Nom de la table externe.

operation_id

Utilisez ce paramètre pour suivre la progression et le statut final de l'opération de chargement avec l'ID correspondant dans la vue USER_LOAD_OPERATIONS.

partition_name

Si une partition spécifique est définie, elle seule est validée. Si aucune valeur n'est spécifiée, toutes les partitions sont lues séquentiellement jusqu'à ce que rowcount soit atteint.

subpartition_name

Si une sous-partition spécifique est définie. Si aucune valeur n'est spécifiée, toutes les partitions ou sous-partitions externes sont lues séquentiellement jusqu'à ce que rowcount soit atteint.

schema_name

Nom du schéma dans lequel réside la table externe. La valeur par défaut est NULL, ce qui signifie que la table externe se trouve dans le même schéma que l'utilisateur qui exécute la procédure.

rowcount

Nombre de rangées à balayer. La valeur par défaut est NULL, ce qui signifie que toutes les rangées des fichiers sources sont balayées.

partition_key_validation

Pour usage interne uniquement. N'utilisez pas ce paramètre.

stop_on_error

Détermine si la validation doit s'arrêter lorsqu'une rangée est rejetée. La valeur par défaut est TRUE, ce qui signifie que la validation s'arrête à la première rangée rejetée. La valeur FALSE indique que la validation ne s'arrête pas à la première rangée rejetée. Toutes les rangées jusqu'à la valeur spécifiée pour le paramètre rowcount sont validées.

Procédure VALIDATE_EXTERNAL_TABLE

Cette procédure valide les fichiers sources d'une table externe, génère des informations de journal et stocke les rangées qui ne correspondent pas aux options de format spécifiées pour la table externe dans une table badfile sur Autonomous Database. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id.

Syntaxe

DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE (
	table_name      IN VARCHAR2,
	schema_name     IN VARCHAR2 DEFAULT,		
	rowcount        IN NUMBER DEFAULT,
	stop_on_error   IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE(
	table_name      IN VARCHAR2,
	operation_id    OUT NOCOPY NUMBER,
	schema_name     IN VARCHAR2 DEFAULT NULL,		
	rowcount        IN NUMBER DEFAULT 0,
	stop_on_error   IN BOOLEAN DEFAULT TRUE);

Paramètres

Paramètre Description

table_name

Nom de la table externe.

operation_id

Utilisez ce paramètre pour suivre la progression et le statut final de l'opération de chargement avec l'ID correspondant dans la vue USER_LOAD_OPERATIONS.

schema_name

Nom du schéma dans lequel réside la table externe. La valeur par défaut est NULL, ce qui signifie que la table externe se trouve dans le même schéma que l'utilisateur qui exécute la procédure.

rowcount

Nombre de rangées à balayer. La valeur par défaut est NULL, ce qui signifie que toutes les rangées des fichiers sources sont balayées.

stop_on_error

Détermine si la validation doit s'arrêter lorsqu'une rangée est rejetée. La valeur par défaut est TRUE, ce qui signifie que la validation s'arrête à la première rangée rejetée. La valeur FALSE indique que la validation ne s'arrête pas à la première rangée rejetée. Toutes les rangées jusqu'à la valeur spécifiée pour le paramètre rowcount sont validées.

Si la table externe référence des fichiers Avro, ORC ou Parquet, la validation s'arrête à la première rangée rejetée.

Lorsque la table externe spécifie l'option type du paramètre format réglée à la valeur avro, orc ou parquet, le paramètre stop_on_error a toujours la valeur TRUE. Ainsi, la table badfile est toujours vide pour une table externe qui référence des fichiers Avro, ORC ou Parquet.

Notes d'utilisation

  • DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE fonctionne avec des tables partitionnées externes et hybrides. Ainsi, les données de toutes les partitions externes peuvent être lues jusqu'à ce que rowcount soit atteint ou que stop_on_error s'applique. Vous n'avez aucun contrôle sur les partitions, ou les parties des partitions, qui sont lues, et dans quel ordre.

Procédure VALIDATE_HYBRID_PART_TABLE

Cette procédure valide les fichiers sources d'une table partitionnée hybride, génère des informations de journal et stocke les rangées qui ne correspondent pas aux options de format spécifiées pour la table hybride dans une table badfile sur Autonomous Database. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id.

Syntaxe

DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
       table_name                 IN VARCHAR2,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);


DBMS_CLOUD.VALIDATE_HYBRID_PART_TABLE (
       table_name                 IN VARCHAR2,
       operation_id               OUT NUMBER,
       partition_name             IN CLOB DEFAULT,
       subpartition_name          IN CLOB DEFAULT,
       schema_name                IN VARCHAR2 DEFAULT,
       rowcount                   IN NUMBER DEFAULT,
       partition_key_validation   IN BOOLEAN DEFAULT,
       stop_on_error              IN BOOLEAN DEFAULT);

Paramètres

Paramètre Description

table_name

Nom de la table externe.

operation_id

Utilisez ce paramètre pour suivre la progression et le statut final de l'opération de chargement avec l'ID correspondant dans la vue USER_LOAD_OPERATIONS.

partition_name

Si une partition spécifique est définie, elle seule est validée. Dans le cas contraire, toutes les partitions externes sont lues de manière séquentielle jusqu'à ce que rowcount soit atteint.

subpartition_name

Si une sous-partition spécifique est définie. Si aucune valeur n'est spécifiée, toutes les partitions ou sous-partitions externes sont lues séquentiellement jusqu'à ce que rowcount soit atteint.

schema_name

Nom du schéma dans lequel réside la table externe. La valeur par défaut est NULL, ce qui signifie que la table externe se trouve dans le même schéma que l'utilisateur qui exécute la procédure.

rowcount

Nombre de rangées à balayer. La valeur par défaut est NULL, ce qui signifie que toutes les rangées des fichiers sources sont balayées.

partition_key_validation

Pour usage interne uniquement. N'utilisez pas ce paramètre.

stop_on_error

Détermine si la validation doit s'arrêter lorsqu'une rangée est rejetée. La valeur par défaut est TRUE, ce qui signifie que la validation s'arrête à la première rangée rejetée. La valeur FALSE indique que la validation ne s'arrête pas à la première rangée rejetée. Toutes les rangées jusqu'à la valeur spécifiée pour le paramètre rowcount sont validées.