DBMS_CLOUD pour les objets et les fichiers
Cette section traite des sous-programmes DBMS_CLOUD utilisés pour travailler avec des objets et des fichiers.
Conditions requises
En tant que développeur, vous pouvez utiliser les procédures DBMS_CLOUD avec des bases de données d'IA autonomes déployées sur Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.
Selon le choix de déploiement, les préalables suivants doivent être respectés 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 de base de données d'intelligence artificielle autonome 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 les ressources de la base de données IA autonome afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique à partir de votre instance Azure AD :
-
Allez à la page Détails du sous-réseau pour le sous-réseau.
-
Dans l'onglet Informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher sa page Détails de la table de routage.
-
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
-
Cible : 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.
-
-
Retournez à la page Détails du sous-réseau pour le sous-réseau.
-
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 sa page Détails de la liste de sécurité.
-
Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.
-
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 :Tous
Si une telle règle n'existe pas, cliquez sur Ajouter des règles sortantes et ajoutez une règle sortante 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 sous 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 soit à 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.
Sous-programmes DBMS_CLOUD pour les objets et les fichiers
Sous-programmes pour la gestion des objets et des fichiers dans le package DBMS_CLOUD.
| Sous-programme | Description |
|---|---|
| Procédure COPY_COLLECTION | Cette procédure charge les données dans la collection SODA existante, soit à partir du stockage d'objets en nuage, soit à partir de fichiers d'un répertoire. |
| Procédure COPY_DATA | Cette procédure charge des données dans les tables existantes de la base de données d'intelligence artificielle autonome à partir du stockage d'objets en nuage ou de fichiers d'un répertoire. |
| Procédure COPY_DATA pour les fichiers Avro, ORC ou Parquet | Cette procédure avec le paramètre Comme pour les fichiers texte, les données sont copiées à partir du fichier ORC, Parquet ou Avro source dans la table interne pré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 sur les fichiers du Cloud ou sur les fichiers d'un répertoire. Cela vous permet d'exécuter des interrogations sur des données externes à partir de la base de données Autonomous AI Database. |
| Procédure CREATE_EXTERNAL_TABLE pour les fichiers Avro, ORC ou Parquet | Cette procédure, avec le paramètre Cela vous permet d'exécuter des interrogations sur des données externes à partir de la base de données Autonomous AI Database. |
| 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 de la base de données Autonomous AI Database. |
| 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é, comme indiqué 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 d'intelligence artificielle 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 operation_id en tant qu'entrée et supprime les journaux associés à operation_id spécifié. |
| 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 de la base de données IA autonome 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 procédure lit un objet à partir du service de stockage d'objets en nuage et le copie dans Autonomous AI Database. Le formulaire de fonction lit un objet à partir du service de stockage d'objets en nuage et retourne une valeur BLOB à la base de données d'intelligence artificielle 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. Dans un formulaire, la procédure copie un fichier de la base de données IA autonome vers le stockage d'objets en nuage. Dans un autre format, la procédure copie une BLOB de la base de données d'IA 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 dans le nuage. Exécutez cette procédure chaque fois que 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 lignes qui ne correspondent pas aux options de format spécifiées pour la table externe dans une table badfile sur Autonomous AI Database. |
| Procédure VALIDATE_EXTERNAL_PART_TABLE | Cette procédure valide les fichiers sources d'une table partitionnée externe, génère des informations de journal et stocke les lignes qui ne correspondent pas aux options de format spécifiées pour la table externe dans une table badfile de la base de données Autonomous AI 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 lignes qui ne correspondent pas aux options de format spécifiées pour la table hybride dans une table badfile de la base de données Autonomous AI Database. |
Procédure COPY_COLLECTION
Cette procédure charge les données dans une collection SODA à partir du 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 |
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 ainsi que des expressions rationnelles dans les noms de fichier dans les URI de fichier source Cloud. Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre 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 Par exemple : 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. Voir Condition REGEXP_LIKE 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 26ai pour plus d'informations sur la condition 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 pour spécifier un répertoire est : 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 : Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple : Utilisez des guillemets doubles pour spécifier un nom de répertoire sensible à la casse. Par exemple : Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple : |
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 : Outre les formats mentionnés pour les données JSON, Autonomous AI Database prend également en charge d'autres formats. Pour la liste des arguments de format pris en charge par Autonomous AI 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 les données dans les tables existantes de la base de données d'IA autonome à 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 |
Vous pouvez utiliser des caractères génériques ainsi que des expressions rationnelles dans les noms de fichier dans les URI de fichier source Cloud. 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 Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre 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 Par exemple : 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. Voir Condition REGEXP_LIKE 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 26ai pour plus d'informations sur la condition 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 pour spécifier un répertoire est : 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 : Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple : Utilisez des guillemets doubles pour spécifier un nom de répertoire sensible à la casse. Par exemple : Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple : |
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 leurs types de données sont déterminés par le paramètre column_list. La syntaxe de cet argument est identique à celle de la clause Lorsque la valeur de l'option Pour un exemple d'utilisation de |
format |
Options décrivant le format des fichiers source, journal et défectueux. Pour connaître la liste des options et la façon de spécifier les valeurs, voir Paramètre de format. Pour les options de format de fichier Avro, ORC ou Parquet, voir Options de format d'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 nouvelle ligne correct à utiliser comme délimiteur d'enregistrement. DBMS_CLOUD recherche d'abord le caractère de nouvelle ligne Windows \r\n. S'il trouve le caractère de nouvelle ligne Windows, il est utilisé comme délimiteur d'enregistrement pour tous les fichiers de la procédure. Si aucun caractère de nouvelle ligne Windows n'est trouvé, DBMS_CLOUD recherche le caractère de nouvelle ligne UNIX/Linux \n et, s'il en trouve un, 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 telle que "KUP-04020: found record longer than buffer size supported" peut se produire. Dans ce cas, vous devez modifier les fichiers sources pour utiliser 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;
/
Procédure COPY_DATA 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 existantes de la base de données d'intelligence artificielle autonome à 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 Avro, ORC ou Parquet source dans la table interne pré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 |
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 ainsi que des expressions rationnelles dans les noms de fichier dans les URI de fichier source Cloud. Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre 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 Par exemple : 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. Voir Condition REGEXP_LIKE 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 26ai pour plus d'informations sur la condition 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 pour spécifier un répertoire est : 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 : Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple : Utilisez des guillemets doubles pour spécifier un nom de répertoire sensible à la casse. Par exemple : Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple : |
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 en type de données de colonne de table externe. Pour les fichiers ORC, voir Mappage de type de données ORC à Oracle de l'ensemble DBMS_CLOUD. Pour les fichiers Parquet, voir Mappage de type de données Parquet à Oracle de l'ensemble DBMS_CLOUD pour plus de détails sur le mappage. For Avro files, see DBMS_CLOUD Package Avro to Oracle Data Type Mapping for details on mapping. |
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 d'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 affichables dans les tables
dba_load_operationsetuser_load_operations. Chaque opération de chargement ajoute un enregistrement àdba[utilisateur]_load_operationsqui indique la table contenant les journaux.La table de journal fournit des informations sommaires sur le chargement.
-
Pour Avro, ORC ou Parquet, lorsque le paramètre
formattypeest réglé à la valeuravro,orcouparquet, la tableBADFILE_TABLEest toujours vide.-
Pour les fichiers Parquet, les erreurs de contrainte
PRIMARY KEYgénèrent une erreurORA. -
Si les données d'une colonne rencontrent une erreur de conversion, par exemple, la colonne cible n'est pas assez grande pour contenir la valeur convertie, la valeur de la colonne est réglée à
NULL. Cela ne produit pas d'enregistrement rejeté.
-
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 le dossier source et cible peuvent se trouver dans le même fournisseur ou dans un autre magasin d'objets en nuage.
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 pour accéder au stockage d'objets en nuage source. Si vous n'indiquez pas de valeur |
source_object_uri |
Spécifie l'URI, qui pointe vers le seau ou l'emplacement 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 pour accéder à l'emplacement de stockage d'objets en nuage cible. Si vous n'indiquez pas de valeur |
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 sur des fichiers dans le Cloud ou à partir de fichiers d'un répertoire. Cela vous permet d'exécuter des interrogations sur des données externes à partir de la base de données Autonomous AI Database.
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 pour les partitions individuelles. Si vous utilisez le paramètre |
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 ainsi que des expressions rationnelles dans les noms de fichier dans les URI de fichier source Cloud. Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre 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 Cette option n'est prise en charge qu'avec les tables externes créées dans un fichier du service de stockage d'objets. Par exemple : Si vous utilisez le paramètre 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 Condition REGEXP_LIKE 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 26ai pour plus d'informations sur la condition |
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 a les exigences suivantes, selon le type des fichiers de données spécifié avec le paramètre
|
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 leurs types 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 d'informations, voir field_list dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 26ai. |
format |
L'option de format
Si les fichiers de données ne sont pas structurés et que la sous-clause Pour les noms d'objet qui ne sont pas basés sur le format de ruche, l'ordre des colonnes spécifiées par Pour voir toutes les options de paramètre |
Notes d'utilisation
-
Vous ne pouvez pas appeler cette procédure avec les paramètres
partitioning_clauseetfile_uri_list. -
La spécification du paramètre
column_listest facultative avec des fichiers de données structurés, notamment les fichiers de données Avro, Parquet ou ORC. Sicolumn_listn'est pas spécifié, l'optionpartition_columnsdu paramètreformatdoit inclure à la foisnameettype. -
Le paramètre
column_listest requis pour les fichiers de données non structurés, tels que les fichiers texte CSV. - La procédure
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEprend 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
- Stockage Azure Blob
Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.
-
La procédure
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEprend en charge les fichiers partitionnés externes dans les 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_TABLEavec le paramètrefile_uri_list, les types des colonnes spécifiées dans le nom du fichier du magasin d'objets en nuage doivent être l'un des types suivants :VARCHAR2(n) NUMBER(n) NUMBER(p,s) NUMBER DATE TIMESTAMP(9) -
Le délimiteur d'enregistrement par défaut est
detected newline. Avecdetected newline,DBMS_CLOUDtente de trouver automatiquement le caractère de nouvelle ligne correct à utiliser comme délimiteur d'enregistrement.DBMS_CLOUDrecherche d'abord le caractère de nouvelle ligne Windows\r\n. S'il trouve le caractère de nouvelle ligne Windows, il est utilisé comme délimiteur d'enregistrement pour tous les fichiers de la procédure. Si aucun caractère de nouvelle ligne Windows n'est trouvé,DBMS_CLOUDrecherche le caractère de nouvelle ligne UNIX/Linux\net, s'il en trouve un, il utilise\ncomme 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 telle que "KUP-04020: found record longer than buffer size supported" peut se produire. Dans ce cas, vous devez modifier les fichiers sources pour utiliser le même délimiteur d'enregistrement ou spécifier uniquement les fichiers sources qui utilisent le même délimiteur d'enregistrement.Voir Formats d'URI du service de stockage d'objets en nuage pour plus d'informations sur l'option de format
recorddelmiter. -
Les tables partitionnées externes que vous créez avec
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEincluent deux colonnes invisiblesfile$pathetfile$name. Ces colonnes permettent d'identifier le fichier d'où provient un enregistrement.-
file$path: Spécifie le texte du chemin d'accès au fichier jusqu'au début du nom de l'objet. -
file$name: Spécifie le nom de l'objet, y compris tout le texte qui suit le nom du seau.
-
Exemples
Exemple : 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 : 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 : Utilisation du paramètre 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;
/
Exemple : Création de tables partitionnées externes à l'aide des objets stockés dans le seau de stockage d'objets C3.
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE(
table_name => 'USAGE_EXTP',
credential_name => 'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => 'https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/usage-data/*usage-data*.parquet',
format => json_object(
'type' value 'parquet', 'schema' value 'first',
'partition_columns' value json_array(
json_object('name' value 'year', 'type' value 'number'),
json_object('name' value 'month', 'type' value 'number'),
json_object('name' value 'day', 'type' value 'number')
)
)
);
END;
/
Procédure CREATE_EXTERNAL_TABLE
Cette procédure crée une table externe sur les fichiers du Cloud ou à partir des fichiers d'un répertoire. Cela vous permet d'exécuter des interrogations sur des données externes à partir de la base de données Autonomous AI Database.
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 |
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 ainsi que des expressions rationnelles dans les noms de fichier dans les URI de fichier source Cloud. Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre 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 Cette option n'est prise en charge qu'avec les tables externes créées dans un fichier du service de stockage d'objets. Par exemple : 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. Voir Condition REGEXP_LIKE 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 26ai pour plus d'informations sur la condition 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 pour spécifier un répertoire est : 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 : Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple : Utilisez des guillemets doubles pour spécifier un nom de répertoire sensible à la casse. Par exemple : Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple : |
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 leurs types de données sont déterminés par le paramètre column_list. La syntaxe de cet argument est identique à 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 26ai. |
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_TABLEprend 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. Avecdetected newline,DBMS_CLOUDtente de trouver automatiquement le caractère de nouvelle ligne correct à utiliser comme délimiteur d'enregistrement.DBMS_CLOUDrecherche d'abord le caractère de nouvelle ligne Windows\r\n. S'il trouve le caractère de nouvelle ligne Windows, il est utilisé comme délimiteur d'enregistrement pour tous les fichiers de la procédure. Si aucun caractère de nouvelle ligne Windows n'est trouvé,DBMS_CLOUDrecherche le caractère de nouvelle ligne UNIX/Linux\net, s'il en trouve un, il utilise\ncomme 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 telle que "KUP-04020: found record longer than buffer size supported" peut se produire. Dans ce cas, vous devez modifier les fichiers sources pour utiliser 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.
Exemples
Exemple : Création d'une table externe à partir d'un fichier CSV dans le stockage d'objets.
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
Exemple : Création d'une table externe à l'aide des objets stockés dans le seau de stockage d'objets C3.
BEGIN
DBMS_CLOUD.CREATE_EXTERNAL_TABLE(
table_name =>'CHANNELS_EXT',
credential_name =>'OBJECT_STORAGE_CREDENTIAL',
file_uri_list => '<https://objectstorage.mydomain.com/n/mytenancy/b/mybucket/o/channels.txt>',
format => json_object('delimiter' value ','),
column_list => 'CHANNEL_ID NUMBER, CHANNEL_DESC VARCHAR2(20), CHANNEL_CLASS VARCHAR2(20)'
);
END;
/
Procédure CREATE_EXTERNAL_TABLE 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 :
-
Iceberg tables sur AWS :
-
Tables Iceberg enregistrées avec AWS Glue Data Catalog, créées avec Spark ou Athena.
Pour plus d'informations, voir Utiliser le connecteur AWS Glue pour lire et écrire des tables Apache Iceberg avec des transactions ACID et effectuer des déplacements dans le temps et Utilisation des tables Iceberg.
-
Tables Iceberg stockées sur AWS S3 en fournissant directement l'URL du fichier de métadonnées racine.
-
-
Tables d'iceberg sur OCI :
-
Tables Iceberg générées avec le service de flux de données OCI à l'aide d'un catalogue Hadoop.
Pour plus d'informations, voir Exemples de flux de données Oracle et Utilisation d'un catalogue Hadoop.
-
Tables Iceberg stockées dans le service de stockage d'objets pour OCI en fournissant directement l'URL du fichier de métadonnées racine.
-
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 |
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 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. |
Paramètres de format d'exemple
-
Voici la marche à suivre 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_protocolcontient 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: Cheminglue database.glue table name.
-
Lors de la création de tables sur une table AWS Iceberg à l'aide d'un URI de fichier de métadonnées, procédez comme suit :
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg') -
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, procédez comme suit :
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_protocolcontient 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: Chemindatabase_name.table nameutilisé lors de la création de la table.
-
Lors de la création de tables sur une table OCI Iceberg à l'aide de l'URI du fichier de métadonnées, procédez comme suit :
format => json_object('access_protocol' value json_object('protocol_type' value 'iceberg')Lorsque le paramètre
access_protocolcontient un objet JSON avec un élément,protocol_typequi doit être'iceberg'.
Procédure CREATE_EXTERNAL_TABLE pour les fichiers Avro, ORC ou Parquet
Cette procédure avec le paramètre format type réglé à la valeur avro, orc ou 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 de la base de données Autonomous AI Database.
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 |
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 ainsi que des expressions rationnelles dans les noms de fichier dans les URI de fichier source Cloud. Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre 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 Cette option n'est prise en charge qu'avec les tables externes créées dans un fichier du service de stockage d'objets. Par exemple : 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. Voir Condition REGEXP_LIKE 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 26ai pour plus d'informations sur la condition 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 pour spécifier un répertoire est : 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 : Pour spécifier plusieurs répertoires, utilisez une liste de répertoires séparés par des virgules : Par exemple : Utilisez des guillemets doubles pour spécifier un nom de répertoire sensible à la casse. Par exemple : Pour inclure un caractère de guillemet, utilisez deux guillemets. Par exemple : |
column_list |
(Facultatif) Ce champ, lorsqu'il est spécifié, remplace le paramètre Lorsque Pour les fichiers Parquet, voir Mappage de type de données Parquet à Oracle de l'ensemble DBMS_CLOUD pour plus de détails. Pour les fichiers ORC, voir Mappage de type de données ORC à Oracle de l'ensemble DBMS_CLOUD pour plus de détails. Pour les fichiers Avro, voir Mappage de type de données Avro à Oracle de 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 en type de données de colonne de table externe. Pour les fichiers ORC, voir Mappage de type de données entre l'ensemble DBMS_CLOUD ORC et Oracle Pour les fichiers Parquet, voir Mappage de type de données Parquet à Oracle de l'ensemble DBMS_CLOUD pour plus de détails. Pour les fichiers Avro, voir Mappage de type de données Avro à Oracle de l'ensemble DBMS_CLOUD pour plus de détails. |
format |
Pour les fichiers sources Avro, ORC ou Parquet type, voir Options de format d'ensemble DBMS_CLOUD pour Avro, ORC ou Parquet pour plus de détails. |
Exemples
-
Code de taux d'intérêt
format => '{"type":"orc", "schema": "all"}'format => json_object('type' value 'orc', 'schema' value 'first') -
Avro
format => '{"type":"avro", "schema": "all"}'format => json_object('type' value 'avro', 'schema' value 'first') -
Parquet
format => '{"type":"parquet", "schema": "all"}'format => json_object('type' value 'parquet', 'schema' value 'first')
Conseil : Voir Mappage des noms de colonne Avro, ORC et Parquet vers Oracle pour plus d'informations sur le mappage des noms de colonne et l'utilisation de la conversion des 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 tout nouvel ajout ou suppression effectué avec des fichiers sur l'URI de l'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 pour accéder à l'emplacement de stockage d'objets en nuage. Pour les URI de seau public, préauthentifié ou pré-signé, une valeur NULL peut être spécifiée. Si vous n'indiquez pas de valeur |
location_uri |
Ce paramètre spécifie la liste des URI de fichier source délimités par des virgules. Vous pouvez utiliser des caractères génériques ainsi que des expressions rationnelles dans les noms de fichier dans les URI de fichier source Cloud. Ce paramètre est obligatoire. 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 Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre 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 Exemple utilisant des expressions rationnelles : Exemple utilisant des caractères génériques :
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. Voir Condition REGEXP_LIKE pour plus d'informations sur la condition |
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 format prises en charge sont les suivantes :
La valeur Vous pouvez spécifier des mots vides à l'aide des méthodes suivantes :
Si vous ne fournissez pas de paramètre |
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 de Autonomous AI 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 pour les partitions individuelles. Pour utiliser des répertoires, la clause de partitionnement prend en charge les valeurs Vous pouvez utiliser des caractères génériques ainsi que des expressions rationnelles dans les noms de fichier dans les URI de fichier source Cloud. Les expressions rationnelles ne peuvent être utilisées que lorsque le paramètre Les caractères "*" et "?" sont considérés comme des caractères génériques lorsque le paramètre 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 Par exemple : Voir Condition REGEXP_LIKE 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 26ai pour plus d'informations sur la condition |
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 leurs types 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 d'informations, voir field_list dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 26ai. |
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_TABLEprend 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_TABLEprend en charge les fichiers partitionnés hybrides dans les répertoires, soit dans un système de fichiers local, soit dans un système de fichiers réseau. -
Les tables partitionnées externes que vous créez avec
DBMS_CLOUD.CREATE_HYBRID_PART_TABLEincluent deux colonnes invisiblesfile$pathetfile$name. Ces colonnes permettent d'identifier le fichier d'où provient un enregistrement.-
file$path: Spécifie le texte du chemin d'accès au fichier jusqu'au début du nom de l'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é, comme indiqué 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 Si aucun |
Note d'utilisation
DBMS_CLOUD.DELETE_ALL_OPERATIONS ne supprime pas les opérations en cours d'exécution (opérations au 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 d'intelligence artificielle 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 de l'instance de base de données du service d'intelligence artificielle 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 des privilèges d'écriture sur le répertoire qui contient le fichier à cet utilisateur. Par exemple, exécutez la commande suivante en tant qu'administrateur pour accorder des 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é connecté aux 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 des 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 |
Spécifie le nom de l'index que vous supprimez. Le nom de l'index doit correspondre au nom fourni au moment 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 de la base de données d'intelligence artificielle autonome 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.
Selon le paramètre format type, la procédure exporte les fichiers vers le nuage ou vers un emplacement de répertoire sous forme de 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, cela spécifie la sortie vers 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 :
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 :
Voir Options de format d'ensemble DBMS_CLOUD pour EXPORT_DATA. |
query |
Utilisez ce paramètre pour spécifier un énoncé Lorsque la valeur Par exemple : |
operation_id |
Utilisez ce paramètre pour suivre la progression et le statut final de l'opération d'exportation en tant qu'ID correspondant dans la vue USER_LOAD_OPERATIONS. |
Notes d'utilisation
-
La valeur de paramètre
queryque vous fournissez peut être une interrogation avancée, si nécessaire, telle qu'une interrogation qui inclut des jointures ou des sous-interrogations. -
Selon le paramètre de format spécifié,
DBMS_CLOUD.EXPORT_DATAretourne les résultats de l'interrogation spécifiée dans le magasin d'objets en nuage ou dans un emplacement de répertoire aux formats de fichier CSV, JSON, Parquet ou XML.Voir Exporter les données dans le magasin d'objets en tant que texte à l'aide de DBMS_CLOUD.EXPORT_DATA et Exporter les données dans un répertoire à l'aide de DBMS_CLOUD.EXPORT_DATA pour plus d'informations sur l'utilisation de
DBMS_CLOUD.EXPORT_DATAavec des 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 avez 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 de base de données de l'IA autonome.
Pour plus d'informations, voir Attribution de nom de fichier à la sortie de texte (CSV, JSON, Parquet ou XML).
La taille de fragment du fichier de sortie par défaut est de 10 Mo pour CSV, JSON ou XML. Vous pouvez modifier cette valeur avec l'option
maxfilesizedu paramètreformat. Pour plus d'informations, voir Options de format d'ensemble DBMS_CLOUD pour EXPORT_DATA. -
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 avez 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 de base de données de l'IA autonome.
Pour plus d'informations, voir Attribution de nom de fichier à la 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 bases de données d'IA autonomes sur une infrastructure Exadata dédiée.
Notes d'utilisation pour `DBMS_CLOUD.EXPORT_DATA` avec sortie dans un répertoire
-
Le répertoire fourni doit exister et vous devez être connecté en tant qu'utilisateur
ADMINou avoir l'accèsWRITEau répertoire. -
DBMS_CLOUD.EXPORT_DATAne crée pas de répertoires. -
La procédure ne remplace pas les fichiers. Par exemple, si un fichier de vidage existe dans
file_uri_list,DBMS_CLOUD.EXPORT_DATAsignale une erreur telle que :
ORA-31641: unable to create dump file "/u02/exports/123.dmp"
ORA-27038: created file already exists
Exemples
Exemple : DBMS_CLOUD.EXPORT_DATA avec le paramètre de format type avec la valeur 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;
/
Exemple : DBMS_CLOUD.EXPORT_DATA avec le paramètre de format type avec la valeur 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;
/
Exemple : DBMS_CLOUD.EXPORT_DATA avec le paramètre de format type avec la valeur 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 procédure lit un objet à partir du service de stockage d'objets en nuage et le copie dans Autonomous AI Database. Le formulaire de fonction lit un objet à partir du service de stockage d'objets en nuage et retourne une valeur BLOB à la base de données d'intelligence artificielle 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. (Voir la note 1 ci-dessous) |
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é avec 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'administrateur pour accorder des privilèges d'écriture à atpc_user :
GRANT WRITE ON DIRECTORY data_pump_dir TO atpc_user;
Valeurs retournées
Le formulaire de fonction lit à partir du magasin d'objets et DBMS_CLOUD.GET_OBJECT retourne une valeur 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;
/
Exemple : Pour lire des données de caractère à partir d'un fichier dans le 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;
Exemple : Pour ajouter une image stockée dans le magasin d'objets dans un fichier 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. Ce paramètre prend en charge les caractères génériques. |
Notes d'utilisation
-
Pour exécuter
DBMS_CLOUD.LIST_FILESavec un utilisateur autre qu'ADMIN, vous devez accorder à cet utilisateur des privilèges de lecture sur le répertoire. Par exemple, exécutez la commande suivante en tant qu'administrateur pour accorder des privilèges de lecture àatpc_user:GRANT READ ON DIRECTORY data_pump_dir TO atpc_user; - Il s'agit d'une fonction de table pipelinée dont le type de retour est
DBMS_CLOUD_TYPES.list_object_ret_t. DBMS_CLOUD.LIST_FILESn'obtient pas la valeur de somme de contrôle et retourneNULLpour ce champ.DBMS_CLOUD.LIST_FILESprend en charge le filtrage sélectif des fichiers à l'aide de la syntaxedirectory:filename. Les caractères génériques sont pris en charge dans le nom de fichier.
Exemples
Exemple : Utilisation de l'interrogation suivante pour utiliser DBMS_CLOUD.LIST_FILES en tant que fonction pipelinée qui retourne une rangée pour chaque fichier.
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
Vous pouvez également utiliser DBMS_CLOUD.LIST_FILES avec la syntaxe DIRECTORY:FILE, soit en spécifiant un fichier, soit en utilisant des caractères génériques. * et? sont les caractères génériques pris en charge.
Exemple : Pour lister tous les fichiers CSV commençant par "f" dans le répertoire DATA_PUMP_DIR à l'aide d'un caractère générique.
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f*.csv');
Exemple : Pour lister le fichier f1.csv dans le répertoire DATA_PUMP_DIR en spécifiant le nom du fichier.
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR:f1.csv');
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 du seau ou du dossier de stockage d'objets. 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. Les caractères génériques sont pris en charge pour lister sélectivement des fichiers ou des sous-dossiers dans un URI. Les caractères " Exemple utilisant des caractères génériques : |
Notes d'utilisation
-
Selon les capacités du magasin d'objets,
DBMS_CLOUD.LIST_OBJECTSne retourne pas de valeurs pour certains attributs et la valeur retournée pour le champ estNULLdans ce cas.Tous les magasins d'objets pris en charge retournent des valeurs pour les champs
OBJECT_NAME,BYTESetCHECKSUM. Le tableau suivant présente la prise en charge des champsCREATEDetLAST_MODIFIEDpar le magasin d'objets :Magasin d'objets CREATEDLAST_MODIFIEDOracle Cloud Infrastructure natif Horodatage des retours Horodatage des retours Swift d'Oracle Cloud Infrastructure Retourne NULLHorodatage des retours Amazon S3 Retourne NULLHorodatage des retours Compatible avec Amazon S3 Retourne NULLHorodatage des retours Azure Horodatage des retours Horodatage des retours -
La valeur de somme de contrôle est la somme 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 pipelinée dont le type de retour est
DBMS_CLOUD_TYPES.list_object_ret_t.
Exemple
Il s'agit d'une fonction pipelinée qui retourne une ligne 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 le dossier source et cible peuvent se trouver dans le même fournisseur ou dans un autre magasin d'objets en nuage.
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 pour accéder au stockage d'objets en nuage source. Si vous n'indiquez pas de valeur |
source_object_uri |
Spécifie l'URI, qui pointe vers le seau ou l'emplacement 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 |
Spécifie l'URI du seau ou du 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 pour accéder à l'emplacement de stockage d'objets en nuage cible. Si vous n'indiquez pas de valeur |
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. Dans un formulaire, la procédure copie un fichier de la base de données IA autonome vers le stockage d'objets en nuage. Dans un autre format, la procédure copie une BLOB de la base de données d'IA 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. (Voir la note 1 ci-dessous) |
contents |
Spécifie BLOB à copier de la base de données de l'IA autonome 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 : |
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 des privilèges de lecture sur le répertoire. Par exemple, exécutez la commande suivante en tant qu'administrateur pour accorder des 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 service de 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 du transfert d'objets |
|---|---|
| Service de stockage d'objets pour Oracle Cloud Infrastructure | 50 Go |
| Amazon S3 | 5 Go |
| Stockage Azure Blob | 256 Mo |
| Compatible avec Amazon S3 | Défini 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 dans le nuage. Exécutez cette procédure chaque fois que 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 d'exécuter 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 sont les suivantes : nouvelles colonnes, colonnes supprimées. Les mises à jour des 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 d'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 de la base de données du service d'intelligence artificielle autonome. 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 elle est définie, seule une partition spécifique est validée. S'il n'est pas spécifié, lisez toutes les partitions de manière séquentielle jusqu'à ce que rowcount soit atteint. |
subpartition_name |
Si elle est définie, seule une sous-partition spécifique est validée. S'il n'est pas spécifié, lisez séquentiellement à partir de toutes les partitions ou sous-partitions externes 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 de la base de données IA autonome. 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 Si la table externe fait référence à des fichiers Avro, ORC ou Parquet, la validation s'arrête à la première ligne rejetée. Lorsque la table externe spécifie le paramètre |
Note d'utilisation
DBMS_CLOUD.VALIDATE_EXTERNAL_TABLE fonctionne avec les tables externes partitionnées et les tables partitionnées hybrides. Cela lit potentiellement les données de toutes les partitions externes jusqu'à ce que rowcount soit atteint ou que stop_on_error s'applique. Vous n'avez pas le contrôle sur quelle partition, ou parties d'une partition, est lue dans quel ordre.
Procédure VALIDATE_HYBRID_PART_TABLE
Cette procédure valide les fichiers sources pour 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 de la base de données d'IA autonome. 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 elle est définie, seule une partition spécifique est validée. S'il n'est pas spécifié, lisez séquentiellement à partir de toutes les partitions externes jusqu'à ce que rowcount soit atteint. |
subpartition_name |
Si elle est définie, seule une sous-partition spécifique est validée. S'il n'est pas spécifié, lisez séquentiellement à partir de toutes les partitions ou sous-partitions externes 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. |