Sous-programmes et API REST DBMS_CLOUD

Cette section décrit les sous-programmes DBMS_CLOUD et les API REST fournis avec Autonomous AI Database.

Note

Pour exécuter les sous-programmes de DBMS_CLOUD avec un utilisateur autre qu'ADMIN, vous devez accorder les privilèges EXECUTE à cet utilisateur. Par exemple, exécutez la commande suivante en tant qu'administrateur pour accorder des privilèges à adb_user :
GRANT EXECUTE ON DBMS_CLOUD TO adb_user;

L'ensemble DBMS_CLOUD se compose des éléments suivants :

DBMS_CLOUD pour la gestion de l'accès

Sous-programmes de gestion des données d'identification de l'ensemble DBMS_CLOUD, permettant notamment de créer, supprimer et mettre à jour les données d'identification.

Sous-programme Description

Procédure CREATE_CREDENTIAL

Cette procédure stocke les données d'identification du service en nuage dans Autonomous AI Database.

Procédure DROP_CREDENTIAL

Cette procédure supprime les données d'identification existantes de la base de données Autonomous AI Database.

REFRESH_VAULT_CREDENTIAL Procédure

Cette procédure actualise immédiatement la clé secrète de chambre forte d'une donnée d'identification de clé secrète de chambre forte pour obtenir la dernière version de la clé secrète de chambre forte pour credential_name spécifiée dans la base de données de l'intelligence artificielle autonome.

Procédure UPDATE_CREDENTIAL

Cette procédure met à jour les attributs de données d'identification du service en nuage dans Autonomous AI Database.

Procédure CREATE_CREDENTIAL

Cette procédure stocke les données d'identification du service en nuage dans Autonomous AI Database.

Utilisez les données d'identification du service en nuage stockées pour accéder au service pour charger des données, pour interroger des données externes résidant dans le nuage ou pour d'autres cas, lorsque vous utilisez les procédures DBMS_CLOUD avec un paramètre credential_name. Cette procédure est surchargée :

  • Utilisez les paramètres relatifs à Oracle Cloud Infrastructure, notamment : user_ocid, tenancy_ocid, private_key et fingerprint uniquement lorsque vous utilisez l'authentification par clés de signature Oracle Cloud Infrastructure.

  • Utilisez le paramètre params pour l'un des éléments suivants :

    • Données d'identification Amazon Resource Names (ARNs)

    • Données d'identification Google Analytics ou Google BigQuery

    • Données d'identification de clé secrète de chambre forte à utiliser avec une chambre forte prise en charge :

      • Service de chambre forte pour Oracle Cloud Infrastructure
      • Chambre forte de clés Azure
      • Gestionnaire de clés secrètes AWS
      • Gestionnaire de clés secrètes GCP

Syntaxe

DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name   IN VARCHAR2,
      username          IN VARCHAR2,
      password          IN VARCHAR2 DEFAULT NULL,
      comments          IN VARCHAR2 DEFAULT NULL);


DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name   IN VARCHAR2,
      user_ocid         IN VARCHAR2,
      tenancy_ocid      IN VARCHAR2,
      private_key       IN VARCHAR2,
      fingerprint       IN VARCHAR2,
      comments          IN VARCHAR2 DEFAULT NULL);


DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name  IN VARCHAR2,
      params           IN CLOB DEFAULT);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification à stocker. Le paramètre credential_name doit être conforme aux conventions d'attribution de nom d'objet Oracle. Le paramètre credential_name peut être défini en tant qu'identificateur non cité ou entre guillemets. Pour plus d'informations, voir Règles d'attribution de nom aux objets de base de données.

username

Les arguments username et password spécifient vos données d'identification pour le service en nuage. Consultez les notes d'utilisation pour connaître les valeurs à spécifier pour username et password pour les différents services en nuage.

password

Les arguments username et password spécifient vos données d'identification pour le service en nuage.

comments

Spécifie le texte du commentaire pour les données d'identification. Ce champ peut être utile pour décrire et distinguer les données d'identification.

La longueur maximale du commentaire est de 3800 caractères.

user_ocid

Spécifie l'OCID de l'utilisateur. Pour plus de détails sur l'obtention de l'OCID de l'utilisateur, voir Où obtenir l'OCID de la location et l'OCID de l'utilisateur.

tenancy_ocid

Spécifie l'OCID de la location. Pour plus de détails sur l'obtention de l'OCID de la location, voir Où obtenir l'OCID de la location et l'OCID de l'utilisateur.

private_key

Spécifie la clé privée générée. Les clés privées générées avec une phrase secrète ne sont pas prises en charge. Vous devez générer la clé privée sans phrase secrète. Pour plus de détails sur la génération d'une paire de clés au format PEM, voir Comment générer une clé de signature d'API.

fingerprint

Spécifie une empreinte numérique. Une fois qu'une clé publique générée est chargée dans le compte de l'utilisateur, l'empreinte numérique s'affiche dans la console. Utilisez l'empreinte numérique affichée pour cet argument. Pour plus d'informations, voir Comment obtenir l'empreinte numérique de la clé et Comment générer une clé de signature d'API.

params

Spécifie les paramètres de données d'identification pour l'un des éléments suivants :

  • Données d'identification Amazon Resource Names (ARNs)

  • Données d'identification Google Analytics ou Google BigQuery

  • Données d'identification de clé secrète de chambre forte à utiliser avec les données d'identification de type nom d'utilisateur/mot de passe dans lesquelles vous stockez le mot de passe dans une chambre forte prise en charge :

    • Service de chambre forte pour Oracle Cloud Infrastructure

    • Chambre forte de clés Azure

    • Gestionnaire de clés secrètes AWS

    • Gestionnaire de clés secrètes GCP

    Pour créer des données d'identification de clé secrète de chambre forte, vous devez disposer du privilège EXECUTE sur l'ensemble DBMS_CLOUD.

Notes d'utilisation

  • Cette opération stocke les données d'identification dans la base de données dans un format chiffré.

  • Vous pouvez voir les données d'identification de votre schéma en interrogeant la table user_credentials.

  • Vous pouvez voir les commentaires de données d'identification de votre schéma en interrogeant la table user_credentials. Exemple :

    SELECT comments FROM user_credentials
            WHERE credential_name = 'MY_CRED';
  • L'utilisateur ADMIN peut voir toutes les données d'identification en interrogeant la table dba_credentials.

  • Les données d'identification ne doivent être créées qu'une seule fois, sauf si vos données d'identification pour le service en nuage changent. Une fois que vous avez stocké les données d'identification, vous pouvez utiliser le même nom pour les procédures DBMS_CLOUD qui nécessitent un paramètre credential_name.

  • Cette procédure est surchargée. Si vous fournissez l'un des attributs d'authentification basés sur une clé, user_ocid, tenancy_ocid, private_key ou fingerprint, on suppose qu'il s'agit de données d'identification basées sur une clé de signature Oracle Cloud Infrastructure.

  • Vous pouvez lister les données d'identification à partir de la vue ALL_CREDENTIALS. Par exemple, exécutez la commande suivante pour lister les données d'identification :

    SELECT credential_name, username, comments FROM all_credentials;

Données d'identification Oracle Cloud Infrastructure (jetons d'authentification)

Pour Oracle Cloud Infrastructure, username est votre nom d'utilisateur Oracle Cloud Infrastructure. password est votre jeton d'authentification Oracle Cloud Infrastructure. Voir Utilisation de jetons d'authentification.

Exemple :

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DEF_CRED_NAME',
    username => 'adb_user@example.com',
    password => 'password' );
END;
/

Utilisez des données d'identification basées sur un jeton d'authentification lorsque vous authentifiez des appels au service de stockage d'objets pour OCI. Pour les appels à tout autre type de service Oracle Cloud Infrastructure Cloud, utilisez les données d'identification basées sur une clé de signature Oracle Cloud Infrastructure.

Pour le service de stockage d'objets pour OCI, la valeur du paramètre username doit inclure le domaine d'identité et le nom d'utilisateur de votre profil. Vous pouvez trouver le domaine d'identité associé à un utilisateur dans la console Oracle Cloud Infrastructure.

Exemple :

oracleidentitycloudservice/adb_user@example.com

Avec le domaine d'identité par défaut, vous n'avez pas besoin d'inclure le nom de domaine Default. Exemple :

adb_user@example.com

Données d'identification basées sur une clé de signature pour Oracle Cloud Infrastructure

Utilisez les paramètres liés à la clé de signature Oracle Cloud Infrastructure, notamment : user_ocid, tenancy_ocid, private_key et fingerprint avec l'authentification par clés de signature Oracle Cloud Infrastructure.

Exemple :

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_KEY_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/

Les clés privées générées avec une phrase secrète ne sont pas prises en charge. Vous devez générer la clé privée sans phrase secrète. Pour plus d'informations, voir Comment générer une clé de signature d'API.

Données d'identification du service Stockage d'objets pour Oracle Cloud Infrastructure version classique

Si vos fichiers sources résident dans le service Stockage d'objets pour Oracle Cloud Infrastructure version classique, username est votre nom d'utilisateur Oracle Cloud Infrastructure version classique et password est votre mot de passe Oracle Cloud Infrastructure version classique.

Données d'identification Amazon Web Services (AWS)

Si vos fichiers sources résident dans Amazon S3 ou que vous appelez une API AWS, username est votre ID de clé d'accès AWS et password est votre clé d'accès secrète AWS. Voir Gestion des identités et des accès AWS.

Données d'identification Microsoft Azure

Si vos fichiers sources résident dans le service de stockage Azure Blob ou Azure Data Lake Storage ou que vous appelez une API Azure, username est votre nom de compte de stockage Azure et password est une clé d'accès à un compte de stockage Azure. Voir À propos des comptes de stockage Azure.

Données d'identification compatibles avec Amazon S3

Service Informations sur les données d'identification

Oracle Cloud Infrastructure (clés secrètes de client)

Si vos fichiers sources résident dans Oracle Cloud Infrastructure, vous devez utiliser des clés secrètes de client avec des URL compatibles avec S3. Pour plus d'informations, voir Utilisation des clés secrètes du client.

Google Cloud Storage

Si vos fichiers sources résident dans Google Cloud Storage ou que vous appelez des API Google Cloud Storage, vous devez définir un projet Google par défaut et obtenir une clé HMAC pour créer des données d'identification à fournir avec les URL Google Cloud Storage compatibles avec S3. Utilisez l'ID de clé HMAC comme nom d'utilisateur et la clé secrète HMAC comme mot de passe.

Pour plus d'informations, voir Projets et Clés HMAC.

Wasabi Hot Cloud Storage

Si vos fichiers sources résident dans Wasabi Hot Cloud Storage ou que vous appelez des API Wasabi Hot Cloud Storage, vous avez besoin de clés d'accès pour créer des données d'identification à fournir avec les URL compatibles avec S3. Utilisez la clé d'accès Wasabi Hot Cloud Storage en tant que nom d'utilisateur et la clé secrète Wasabi Hot Cloud Storage en tant que mot de passe.

Pour plus d'informations, voir Création d'un jeu de clés d'accès à l'API Wasabi.

Données d'identification AWS Amazon Resource Names (ARN)

Si vos fichiers sources résident dans Amazon S3 ou que vous appelez une API AWS, utilisez params pour spécifier les paramètres des noms de ressource Amazon (ARN).

Paramètre Valeur
aws_role_arn

Spécifie le nom de ressource Amazon (ARN) qui identifie le rôle AWS.

Si ce paramètre n'est pas fourni lors de la création des données d'identification, ORA-20041 est généré.

external_id_type

Facultativement, réglez external_id_type pour utiliser l'OCID du compartiment de la base de données de l'IA autonome, l'OCID de la base de données ou l'OCID de la location en fournissant l'un des éléments suivants : compartment_ocid, database_ocid ou tenant_ocid.

Si ce paramètre n'est pas indiqué lors de la création des données d'identification, la valeur par défaut est database_ocid.

Exemple :

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name      => 'MY_CRED',
        params               => JSON_OBJECT(
               'aws_role_arn'      value 'arn:aws:iam::123456:role/AWS_ROLE_ARN',
               'external_id_type'  value 'database_ocid'));
END;
/

Jeton d'accès personnel GitHub

Si vos fichiers sources résident dans un référentiel GitHub ou que vous appelez une API GitHub, username est votre adresse de courriel GitHub et password est votre jeton d'accès personnel GitHub. Pour plus d'informations, voir Création d'un jeton d'accès personnel.

Exemple :

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'MY_GITHUB_CRED',
    username => 'user@example.com',
    password => 'your_personal_access_token' );
END;
/

Données d'identification Google Analytics ou Google BigQuery

Si vous accédez à Google Analytics ou à Google BigQuery, utilisez le paramètre params pour spécifier les paramètres de données d'identification Google OAuth 2.0.

Paramètre Valeur
gcp_oauth2

Spécifie l'accès OAuth 2.0 pour Google Analytics ou Google BigQuery avec un objet JSON qui inclut les paramètres suivants et leurs valeurs :

  • client_id : Voir la console d'API Google pour obtenir l'ID client.

  • client_secret : Voir la console d'API Google pour obtenir la clé secrète client.

  • refresh_token : Un jeton d'actualisation permet à votre application d'obtenir de nouveaux jetons d'accès.

Voir Utilisation de OAuth 2.0 pour accéder aux API Google pour plus d'informations sur les données d'identification Google OAuth.

Exemple :

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
      credential_name => 'GOOGLE_BIGQUERY_CRED',
      params => JSON_OBJECT('gcp_oauth2' value 
                                  JSON_OBJECT(
                                       'client_id'     value 'client_id',
                                       'client_secret' value 'client_secret',
                                       'refresh_token' value 'refresh_token' )));
END;
/

Données d'identification de clé secrète de la chambre forte avec Oracle Cloud Infrastructure Vault

Pour créer des données d'identification de clé secrète de chambre forte avec Oracle Cloud Infrastructure Vault, utilisez le paramètre params pour spécifier les paramètres requis :

  • username : Spécifie le nom d'utilisateur de tout type de données d'identification de nom d'utilisateur ou de mot de passe, par exemple le nom d'utilisateur du mot de passe OCI Swift. Par exemple, si vous avez des données d'identification Swift avec le nom d'utilisateur "scott" et le mot de passe "mot de passe", indiquez "scott" comme paramètre username.

  • secret_id : ID clé secrète de la chambre forte. Spécifiez la valeur secret_id comme OCID de la clé secrète de la chambre forte. Voir Aperçu du service de chambre forte pour plus d'informations.

  • region : Paramètre facultatif qui spécifie l'identificateur de région oracle cloud. La région, lorsqu'elle est spécifiée, indique l'emplacement de la clé secrète Oracle Cloud Infrastructure Vault.

    Par défaut, CREATE_CREDENTIAL utilise region mappé à partir de la clé de région dans secret_id. Un exemple de région est us-ashburn-1.

    Pour obtenir la liste complète des régions, voir régions et domaines de disponibilité.

Exemple :

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OCI_SECRET_CRED',
    params => JSON_OBJECT( 
                'username'   value 'scott',
                'region'     value 'us-ashburn-1',
                'secret_id'  value 'ocid1.vaultsecret.co1.ap-mumbai-1.example..aaaaaaaauq5ok5nq3bf2vwetkpqsoa'));
END;
/

Notes pour l'utilisation d'une clé secrète Oracle Cloud Infrastructure Vault pour stocker les clés secrètes de chambre forte :

  • Lorsque vous utilisez Oracle Cloud Infrastructure Vault, sur l'instance Autonomous AI Database, vous devez activer l'authentification principale avec DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL.
  • Sur Oracle Cloud Infrastructure, vous devez spécifier une politique pour que le principal de ressource puisse accéder à la clé secrète.

Pour créer des données d'identification de clé secrète de chambre forte, vous devez disposer du privilège EXECUTE sur l'ensemble DBMS_CLOUD.

Données d'identification de clé secrète de chambre forte avec chambre forte de clés Azure

Pour créer les données d'identification du service de chambre forte de clés Azure, utilisez le paramètre params pour spécifier les paramètres requis :

  • username : Spécifie le nom d'utilisateur associé à la clé.

  • secret_id : Spécifie le nom de la clé secrète.

  • azure_vault_name : Spécifie le nom de la chambre forte où se trouve la clé secrète.

Pour plus d'informations, voir Créer une chambre forte de clés.

Pour créer des données d'identification de clé secrète de chambre forte, vous devez disposer du privilège EXECUTE sur l'ensemble DBMS_CLOUD.

Données d'identification de clé secrète de chambre forte avec AWS Secrets Manager

Pour créer des données d'identification de clé secrète de chambre forte avec AWS Secrets Manager, utilisez le paramètre params pour spécifier les paramètres requis :

  • username : Spécifie la clé d'accès AWS Secrets Manager.

  • secret_id : Est l'ARN AWS Secrets Manager.

  • region : (Facultatif) Spécifie la région de service AWS où se trouvent la chambre forte et la clé secrète. Un exemple de la région AWS est "us-east-2". La valeur par défaut region est la région spécifiée avec l'ARN dans le paramètre secret_id.

    Pour plus d'informations, voir Gestion des régions AWS.

    Pour créer des données d'identification de clé secrète de chambre forte, vous devez disposer du privilège EXECUTE sur l'ensemble DBMS_CLOUD.

Données d'identification de clé secrète de la chambre forte avec le gestionnaire de clés secrètes GCP

Pour créer les données d'identification du gestionnaire de clés secrètes GCP, utilisez le paramètre params pour spécifier les paramètres requis :

  • username : Spécifie le nom d'utilisateur associé à la clé secrète.

  • secret_id : Nom de la clé secrète.

  • gcp_project_id : Spécifie l'ID du projet où se trouve la clé secrète.

Pour plus d'informations, voir Gestionnaire de clés secrètes.

Pour créer des données d'identification de clé secrète de chambre forte, vous devez disposer du privilège EXECUTE sur l'ensemble DBMS_CLOUD.

Procédure DROP_CREDENTIAL

Cette procédure supprime les données d'identification existantes de la base de données Autonomous AI Database.

Syntaxe

DBMS_CLOUD.DROP_CREDENTIAL (
   credential_name     IN VARCHAR2);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification à supprimer.

REFRESH_VAULT_CREDENTIAL Procédure

Cette procédure actualise la clé secrète de chambre forte d'une clé secrète de chambre forte.

Cette procédure vous permet d'actualiser immédiatement la clé secrète de chambre forte d'une donnée d'identification de clé secrète de chambre forte pour obtenir la dernière version de la clé secrète de chambre forte pour credential_name spécifiée.

Syntaxe

DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL (
    credential_name   IN VARCHAR2);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification à actualiser.

Notes d'utilisation

  • L'utilisateur ADMIN peut voir toutes les données d'identification en interrogeant la table dba_credentials.

  • Vous pouvez lister les données d'identification à partir de la vue ALL_CREDENTIALS. Par exemple, exécutez la commande suivante pour lister les données d'identification :

    SELECT credential_name, username, comments FROM all_credentials;

Exemple

BEGIN
  DBMS_CLOUD.REFRESH_VAULT_CREDENTIAL(
     credential_name => 'AZURE_SECRET_CRED'); 
END;
/

Procédure UPDATE_CREDENTIAL

Cette procédure met à jour un attribut avec une nouvelle valeur pour un paramètre credential_name spécifié.

Utilisez les données d'identification stockées pour charger des données, pour interroger des données externes résidant dans le nuage ou lorsque vous utilisez les procédures DBMS_CLOUD avec un paramètre credential_name.

Syntaxe

DBMS_CLOUD.UPDATE_CREDENTIAL (
    credential_name   IN VARCHAR2,
    attribute         IN VARCHAR2,
    value             IN VARCHAR2);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification à mettre à jour.

attribute

Nom de l'attribut à mettre à jour.

Pour les données d'identification de type nom d'utilisateur/mot de passe, les valeurs attribute valides sont les suivantes : USERNAME et PASSWORD.

Pour les données d'identification d'un ARN Amazon, les valeurs attribute valides sont les suivantes : aws_role_arn et external_id_type.

Pour des données d'identification pour Google BigQuery ou Google Analytics, les valeurs attribute valides sont les suivantes : client_id, client_secret et refresh_token.

Selon la chambre forte que vous utilisez, pour les données d'identification de clé secrète de la chambre forte, les valeurs attribute valides sont les suivantes :
  • Oracle Cloud Infrastructure Vault : secret_id, region

  • Chambre forte de clés Azure : secret_id, azure_vault_name

  • AWS Secrets Manager : secret_id, region

  • Gestionnaire de clés secrètes GCP : secret_id, gcp_project_id

Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.

value

Nouvelle valeur pour l'attribut spécifié.

Notes d'utilisation

  • La valeur du nom d'utilisateur est sensible à la casse. Il ne peut pas contenir de guillemets doubles ni d'espaces.

  • L'utilisateur ADMIN peut voir toutes les données d'identification en interrogeant dba_credentials.

  • Les données d'identification ne doivent être créées qu'une seule fois, sauf si vos données d'identification pour le service en nuage changent. Une fois que vous avez stocké les données d'identification, vous pouvez utiliser le même nom pour les procédures DBMS_CLOUD qui nécessitent un paramètre credential_name.

  • Vous pouvez lister les données d'identification à partir de la vue ALL_CREDENTIALS. Par exemple, exécutez la commande suivante pour lister les données d'identification :

    SELECT credential_name, username, comments FROM all_credentials;

Exemples

BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'OBJ_STORE_CRED',
     attribute => 'PASSWORD',
     value => 'password'); 
END;
/
BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'ARN_CRED',
     attribute => 'aws_role_arn',
     value => 'NEW_AWS_ARN'); 
END;
/

DBMS_CLOUD 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 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 format type réglé à la valeur orc, parquet ou avro charge des données dans les tables existantes de la base de données d'intelligence artificielle autonome à 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 ORC, Parquet ou Avro source dans la table interne préexistante.

COPY_OBJECT Procédure

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

Cette procédure crée une table en nuage dans laquelle toutes les données persistantes sont stockées dans le service de stockage d'objets géré par Oracle.

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 de la base de données Autonomous AI Database.
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.

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 parquet, orc ou 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 de la base de données Autonomous AI Database.

CREATE_EXTERNAL_PART_TABLE Procédure

Cette procédure crée une table partitionnée externe pour des fichiers en nuage. Cela vous permet d'exécuter des interrogations sur des données externes à partir de la base de données Autonomous AI Database.

CREATE_EXTERNAL_TEXT_INDEX Procédure

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

CREATE_HYBRID_PART_TABLE Procédure

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é 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.

DELETE_OPERATION Procédure

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

DROP_EXTERNAL_TEXT_INDEX Procédure

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

EXPORT_DATA Procédure

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; ou à l'aide du pilote d'accès ORACLE_DATAPUMP pour écrire des données dans un fichier de vidage.

GET_OBJECT Procédure et fonction

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.

MOVE_OBJECT Procédure

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.

SYNC_EXTERNAL_PART_TABLE Procédure

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 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 de l'IA autonome.

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 IA autonome.

VALIDATE_HYBRID_PART_TABLE Procédure

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 de la base de données IA autonome.

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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 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 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.

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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE 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 pour spécifier 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 non sensible à la casse. Le nom du fichier est sensible à la casse.

Les expressions rationnelles ne sont pas prises en charge lors de la spécification des noms de fichier dans un répertoire. Vous ne pouvez utiliser que des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé pour plusieurs caractères, et le caractère "?" 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 spécifier 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'. Cela spécifie que filename commence par une soumission (').

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, encryption, ignoreblanklines, jsonpath, maxdocsize, recorddelimiter, rejectlimit, type, unpackarrays, keyassignment et keypath.

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 Options de format d'ensemble DBMS_CLOUD.

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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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

file_uri_list

Ce paramètre spécifie l'un des éléments suivants :

  • Liste délimitée par des virgules d'URI de fichier source

  • Liste d'URL d'hyperliens de table délimitées par des virgules

  • Un ou plusieurs répertoires et fichiers sources

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 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.

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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE pour plus d'informations sur la condition REGEXP_LIKE.

URL de l'hyperlien de la table

Vous pouvez utiliser un hyperlien de table comme suit :
  • Indiquez une URL d'hyperlien de table unique.

    Exemple :
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data'
    
  • Spécifiez une liste délimitée par des virgules d'URL d'hyperliens de table. Vous devez vous assurer que tous les hyperliens de table inclus ont les mêmes noms de colonne, ordre des colonnes et types de données de colonne.

    Exemple :
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data','https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K7XExample/data'
    
Pour plus d'informations, voir À propos des hyperliens de table sur la base de données d'IA autonome et Procédure CREATE_URL.

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 :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données non sensible à la casse. Le nom du fichier est sensible à la casse.

Les expressions rationnelles ne sont pas prises en charge lors de la spécification des noms de fichier dans un répertoire. Vous ne pouvez utiliser que des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé pour plusieurs caractères, et le caractère "?" 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 spécifier 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'. Cela spécifie que filename commence par une soumission (').

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 la définition de la table cible. La syntaxe de cet argument est identique à celle de la clause field_list dans les tables externes Oracle standard. Pour plus d'informations sur field_list, voir Utilitaires d'Oracle® Database.

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 source, journal et défectueux. Pour la liste des options et la façon de spécifier les valeurs, voir Options de format d'ensemble DBMS_CLOUD.

Pour 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 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 saut de ligne Windows, celui-ci 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 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 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 Options de format d'ensemble DBMS_CLOUD 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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 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 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.

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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE 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 pour spécifier 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 non sensible à la casse. Le nom du fichier est sensible à la casse.

Les expressions rationnelles ne sont pas prises en charge lors de la spécification des noms de fichier dans un répertoire. Vous ne pouvez utiliser que des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé pour plusieurs caractères, et le caractère "?" 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 spécifier 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'. Cela spécifie que filename commence par une soumission (').

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 types de données Oracle dans 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.

Pour les fichiers Avro, voir Mappage de type de données Avro à Oracle de 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 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_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 de journal fournit des informations sommaires sur le chargement.

  • Pour Avro, ORC ou Parquet, lorsque le paramètre format type est réglé à la valeur 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 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é.

COPY_OBJECT Procédure

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 permettant d'accéder au service de stockage d'objets en nuage source.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur source_credential_name, credential_name est réglé à NULL.

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 DBMS_CLOUD.

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 DBMS_CLOUD.

target_credential_name

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

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez 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;
/

CREATE_CLOUD_TABLE Procédure

Cette procédure crée une table Cloud. Toutes les données de table en nuage sont stockées dans le service de stockage d'objets géré par Oracle (les tables en nuage stockent uniquement leurs métadonnées dans la base de données).

Syntaxe

DBMS_CLOUD.CREATE_CLOUD_TABLE (
    table_name       IN VARCHAR2,
    column_list      IN CLOB,
    params           IN CLOB);

Paramètres

Paramètre Description

table_name

Nom de la table en nuage.

column_list

Liste séparée par des virgules de noms de colonne et de types de données pour la table Cloud.

Notes d'utilisation

  • Attributs DEFAULT : column_list peut inclure la clause DEFAULT, qui fonctionne comme la clause DEFAULT dans une clause CREATE TABLE ordinaire. Voir CREATE TABLE pour plus d'informations sur le comportement de la clause DEFAULT.

  • Utilisez DROP TABLE pour supprimer une table en nuage. Les tables Cloud ne prennent pas en charge la corbeille.

    Exemple :

    DROP TABLE CLOUD_TAB1; 
  • Vous pouvez accorder des privilèges SELECT, INSERT et UPDATE pour une table en nuage. Aucun autre privilège ne peut être accordé à une table en nuage.

    Pour plus d'informations, voir Configuration du privilège et de l'autorisation de rôle.

Exemples

EXEC DBMS_CLOUD.CREATE_CLOUD_TABLE( 'CLOUD_TAB1', 'I INTEGER, J INTEGER' );
BEGIN
  DBMS_CLOUD.CREATE_CLOUD_TABLE(
   table_name  => 'CLOUD_TABLE_WITH_DEFAULT',
   column_list => 'I INTEGER,
                   A VARCHAR2(32) DEFAULT ''ABC''' );
END;
/

CREATE_EXTERNAL_PART_TABLE Procédure

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 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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 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 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 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 service de stockage d'objets.

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 DBMS_CLOUD.

Voir Condition REGEXP_LIKE 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 a les exigences suivantes, selon le type des fichiers de données spécifié avec le paramètre file_uri_list :

  • Le paramètre column_list est requis pour les fichiers non structurés. À l'aide de fichiers non structurés, par exemple avec des fichiers texte CSV, le paramètre column_list doit spécifier tous les noms de colonne et types de données dans le fichier de données ainsi que les colonnes de partition dérivées du nom de l'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 requis. 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 d'informations sur field_list, voir Utilitaires d'Oracle® Database.

format

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

  • Lorsque DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE inclut le paramètre column_list et que les fichiers de données ne sont pas structurés, par exemple avec des 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 DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE column_list.

  • Lorsque le paramètre DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE n'inclut pas le paramètre column_list et que les fichiers de données sont structurés, tels que les fichiers Avro, ORC ou Parquet, l'option partition_columns inclut à la fois le nom de colonne, la sous-clause name et le type de données, la sous-clause type. Par exemple, l'illustration suivante présente 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 à l'ordre tel qu'il apparaît dans le nom de l'objet dans le chemin d'accès au fichier spécifié dans le paramètre file_uri_list.

Pour voir toutes les options de paramètre format décrivant le format des fichiers sources, voir Options de format d'ensemble DBMS_CLOUD.

Notes d'utilisation

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

  • La spécification du paramètre column_list est facultative avec des 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 à la fois name et type.

  • Le paramètre column_list est requis pour 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

    • Stockage Azure Blob ou stockage Azure Data Lake

    • Amazon S3

    • Compatible avec Amazon S3, notamment : Oracle Cloud Infrastructure Object Storage, Google Cloud Storage et Wasabi Hot Cloud Storage.

    • Référentiel GitHub

    Pour plus d'informations, voir Formats d'URI DBMS_CLOUD.

  • La procédure DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE prend 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_TABLE avec le paramètre file_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. 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 saut de ligne Windows, celui-ci 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 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 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 Options de format d'ensemble DBMS_CLOUD 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_TABLE incluent deux colonnes invisibles file$path et file$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 utilisant le 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 utilisant les 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 utilisant le 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;
/

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 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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 l'un des éléments suivants :

  • Liste délimitée par des virgules d'URI de fichier source.

  • Liste d'URL d'hyperliens de table délimitées par des virgules.

  • 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 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 service de stockage d'objets.

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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE pour plus d'informations sur la condition REGEXP_LIKE.

URL de l'hyperlien de la table

Vous pouvez utiliser une URL d'hyperlien de table pour créer une table externe de la manière suivante :
  • Spécifiez une seule URL d'hyperlien de table de base de données de l'IA autonome. Vous pouvez également appliquer des filtres et des clauses aux données lorsque vous lisez les données de la table. Par exemple, vous pouvez filtrer les données à l'aide de la clause WHERE ou les trier à l'aide de la clause ORDER BY.

    Exemple :
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data'
    
  • Spécifiez une liste délimitée par des virgules d'URL d'hyperliens de table de base de données du service d'intelligence artificielle autonome. Vous devez vous assurer que tous les hyperliens de table inclus doivent avoir les mêmes noms de colonne, ordre de colonne et types de données de colonne dans le même schéma.

    Exemple :
    file_uri_list => 'https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data','https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K7XExample/data'
    
Note

Les URL d'hyperlien de table ne prennent pas en charge les caractères génériques.
Pour plus d'informations, voir À propos des hyperliens de table sur la base de données d'IA autonome et Procédure CREATE_URL.
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 :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données non sensible à la casse. Le nom du fichier est sensible à la casse.

Les expressions rationnelles ne sont pas prises en charge lors de la spécification des noms de fichier dans un répertoire. Vous ne pouvez utiliser que des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé pour plusieurs caractères, et le caractère "?" 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 spécifier 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'. Cela spécifie que filename commence par une soumission (').

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 la clause field_definitions dans Utilitaires d'Oracle AI Database.

format

Options décrivant le format des fichiers sources. Pour la liste des options et la façon de spécifier les valeurs, voir Options de format d'ensemble DBMS_CLOUD.

For Avro, ORC, or Parquet format files, see CREATE_EXTERNAL_TABLE Procedure for Avro, ORC, or Parquet Files.

Notes d'utilisation

  • La procédure DBMS_CLOUD.CREATE_EXTERNAL_TABLE prend en charge les fichiers partitionnés externes dans les sources de stockage d'objets en nuage prises en charge, notamment :

    • Service de stockage d'objets pour Oracle Cloud Infrastructure

    • Stockage Azure Blob ou stockage Azure Data Lake

    • Amazon S3

    • Compatible avec Amazon S3, notamment : Oracle Cloud Infrastructure Object Storage, Google Cloud Storage et Wasabi Hot Cloud Storage.

    • Référentiel GitHub

    • Oracle Cloud Infrastructure Object Storage avec des URL d'hyperlien de table

    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 DBMS_CLOUD.

  • 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 saut de ligne Windows, celui-ci 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 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 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 Options de format d'ensemble DBMS_CLOUD 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_lakehouse'     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_lakehouse : Chemin d'accès au répertoire Lakehouse 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'

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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 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 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 service de stockage d'objets.

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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE 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 pour spécifier 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 non sensible à la casse. Le nom du fichier est sensible à la casse.

Les expressions rationnelles ne sont pas prises en charge lors de la spécification des noms de fichier dans un répertoire. Vous ne pouvez utiliser que 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, et le caractère "?" peut être utilisé comme caractère générique 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 spécifier 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'. Cela spécifie que filename commence par une soumission (').

column_list

(Facultatif) Ce champ, lorsqu'il est spécifié, 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 de 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 trouvées dans le fichier. Les types de données Oracle doivent être mappés de manière appropriée aux types de données Avro, ORC ou Parquet.

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 types de données Oracle dans 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.

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 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 avec les noms de colonne Oracle

See DBMS_CLOUD Package Avro, ORC, and Parquet to Oracle Column Name Mapping for information on column name mapping and column name conversion usage in Oracle SQL.

CREATE_EXTERNAL_TEXT_INDEX Procédure

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 permettant d'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.

Pour plus d'informations, voir Configurer les politiques et les rôles pour accéder aux ressources.

Si vous n'indiquez pas de valeur credential_name, credential_name est réglé à une valeur NULL.

location_uri

Ce paramètre spécifie une liste délimitée par des virgules d'URI de fichier source.

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 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.

Exemple utilisant des expressions rationnelles :

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

Exemple utilisant des caractères génériques :

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE pour plus d'informations sur la condition REGEXP_LIKE.

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 chargements et les suppressions de nouveaux fichiers 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.

json_index : Spécifie si le contenu des fichiers à indexer est JSON ou JSON de rangée. La valeur par défaut est FALSE.

json_index_doc_sep : Spécifie le séparateur utilisé pour le prétraitement des documents JSON de rangée. La valeur par défaut est '\n' (nouvelle ligne).

json_index_doc_len : Spécifie la longueur de chaque document JSON dans l'objet. La valeur par défaut est 32767 et la valeur maximale est 200000.

file_compression : Spécifie le format de compression des fichiers JSON. La valeur par défaut est gzip.

stop_words : Spécifie qu'une liste de mots d'arrêt peut être fournie lors de la création d'index.

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

Vous pouvez spécifier des mots vides à 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;
/

CREATE_HYBRID_PART_TABLE Procédure

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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 LOCATION et DEFAULT DIRECTORY.

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 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.

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 Condition REGEXP_LIKE 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 d'informations sur field_list, voir Utilitaires d'Oracle® Database.

format

Options décrivant le format des fichiers sources. Pour la liste des options et la façon de spécifier les valeurs, voir Options de format d'ensemble DBMS_CLOUD.

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 :

    • Service de stockage d'objets pour Oracle Cloud Infrastructure

    • Stockage Azure Blob ou stockage Azure Data Lake

    • Amazon S3

    • Compatible avec Amazon S3, notamment : Oracle Cloud Infrastructure Object Storage, Google Cloud Storage et Wasabi Hot Cloud Storage.

    • Référentiel GitHub

    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 DBMS_CLOUD.

  • La procédure DBMS_CLOUD.CREATE_HYBRID_PART_TABLE prend 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_TABLE incluent deux colonnes invisibles file$path et file$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é 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.

Notes d'utilisation

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

  • Cette procédure supprime toutes les tables de journalisation et tous les fichiers journaux associés aux opérations.

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 les droits 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 les droits d'écriture à adb_user :
GRANT WRITE ON DIRECTORY data_pump_dir TO adb_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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 des détails, voir Formats d'URI DBMS_CLOUD.

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

DELETE_OPERATION Procédure

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.

Note d'utilisation

  • Cette procédure supprime toutes les tables de journalisation et tous les fichiers journaux associés à l'ID opération indiqué dans l'entrée.

Exemple

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

DROP_EXTERNAL_TEXT_INDEX Procédure

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

EXPORT_DATA Procédure

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, ou à l'aide du pilote d'accès ORACLE_DATAPUMP pour écrire des données dans un fichier de vidage d'extraction de données Oracle.

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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 :
  • Lorsque la valeur du paramètre format type est json : Le JSON dans le magasin d'objets ou dans l'emplacement de répertoire spécifié est enregistré avec un nom de fichier généré basé sur 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 du paramètre format type est datapump, file_uri_list est une liste délimitée par des virgules des fichiers de vidage. Indique les fichiers à créer dans le magasin d'objets. L'utilisation de caractères génériques et de caractères 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 DBMS_CLOUD.

format

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

L'option prise en charge est :

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

Voir Options de format d'ensemble DBMS_CLOUD 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 en tant que fichiers de vidage. Exemple :

SELECT lakehouse_id, quantity FROM inventories

Pour plus d'informations sur la valeur datapump dans le format type, voir Filtres de données d'exportation d'Oracle Data Pump et Déchargement et chargement de données avec le pilote d'accès ORACLE_DATAPUMP.

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. Pour plus d'informations, voir Type d'objet JSON_OBJECT_T.

Exemple :

SELECT JSON_OBJECT(* RETURNING CLOB) from(SELECT lakehouse_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 de paramètre query que 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_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 l'un des formats suivants :

  • 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 pour une 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 maxfilesize du paramètre format. Pour plus d'informations, voir Options de format d'ensemble DBMS_CLOUD 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 avez 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 de base de données de l'IA autonome.

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

Notes d'utilisation pour la sortie ORACLE_DATAPUMP (DBMS_CLOUD.EXPORT_DATA avec le paramètre format type, option datapump) :

  • EXPORT_DATA utilise DATA_PUMP_DIR comme répertoire de journalisation par défaut. Le privilège d'écriture sur DATA_PUMP_DIR est donc requis lors de l'utilisation de la sortie ORACLE_DATAPUMP.

  • L'exportation de base de données du service d'intelligence artificielle autonome à l'aide de DBMS_CLOUD.EXPORT_DATA avec le paramètre format de l'option type datapump prend uniquement en charge le service de stockage d'objets d'Oracle Cloud Infrastructure Object Storage, les magasins d'objets du service de stockage d'objets d'Oracle Cloud Infrastructure Object Storage Classic ou la sortie du répertoire.

  • Lorsque vous spécifiez DBMS_CLOUD.EXPORT_DATA avec l'option datapump du paramètre format type, la valeur du paramètre credential_name ne peut pas être un principal de ressource OCI.

  • Oracle Data Pump divise chaque partie du fichier de vidage en fragments plus petits pour accélérer les chargements. La console du service de stockage d'objets pour Oracle Cloud Infrastructure affiche plusieurs fichiers pour chaque partie de fichier de vidage que vous exportez. La taille des fichiers de vidage réels affichée est de zéro (0) et celle des fragments associés est de 10 Mo ou moins. Exemple :
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    En téléchargeant les fichiers de vidage à zéro octet à partir de la console Oracle Cloud Infrastructure ou à l'aide de l'interface de ligne de commande Oracle Cloud Infrastructure, vous n'obtiendrez pas les fichiers de vidage complets. Pour télécharger les fichiers de vidage complets à partir du magasin d'objets, utilisez un outil qui prend en charge Swift, tel que curl, et fournissez votre nom de connexion d'utilisateur et votre jeton d'authentification Swift.
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp

    Si vous importez un fichier avec les procédures DBMS_CLOUD qui prennent en charge le paramètre format type avec la valeur 'datapump', vous n'avez qu'à fournir le nom du fichier principal. Les procédures qui prennent en charge le type de format 'datapump' détectent et téléchargent automatiquement les fragments.

    Lorsque vous utilisez DBMS_CLOUD.DELETE_OBJECT, la procédure détecte et supprime automatiquement les fragments lorsque la procédure supprime le fichier principal.

  • La procédure DBMS_CLOUD.EXPORT_DATA crée les fichiers de vidage à partir des valeurs file_uri_list que vous spécifiez, comme suit :

    • Comme d'autres fichiers sont nécessaires, la procédure crée des fichiers supplémentaires à partir de file_uri_list.

    • La procédure ne remplace pas les fichiers. Si un fichier de vidage existe dans file_uri_list, DBMS_CLOUD.EXPORT_DATA signale une erreur.

    • DBMS_CLOUD.EXPORT_DATA ne crée pas de seaux.

  • Le nombre de fichiers de vidage générés par DBMS_CLOUD.EXPORT_DATA est déterminé lors de l'exécution de la procédure. Le nombre de fichiers de vidage générés dépend du nombre de noms de fichier que vous fournissez dans le paramètre file_uri_list, ainsi que du nombre d'OCPU de base de données d'intelligence artificielle autonome disponibles pour l'instance, du niveau de service et de la taille des données.

    Par exemple, si vous utilisez une instance de base de données d'IA autonome à 1 OCPU ou le service low, un seul fichier de vidage est exporté sans parallélisme, même si vous fournissez plusieurs noms de fichier. Si vous utilisez une instance de base de données du service d'intelligence artificielle autonome à 4 OCPU avec le service medium ou high, les tâches peuvent être exécutées en parallèle et plusieurs fichiers de vidage sont exportés si vous fournissez plusieurs noms de fichier.

  • Les fichiers de vidage que vous créez avec DBMS_CLOUD.EXPORT_DATA ne peuvent pas être importés à l'aide d'Oracle Data Pump impdp. Selon la base de données, vous pouvez utiliser ces fichiers comme suit :

    • Dans une base de données d'intelligence artificielle autonome, vous pouvez utiliser les fichiers de vidage avec les procédures DBMS_CLOUD qui prennent en charge le paramètre format type avec la valeur 'datapump'. Vous pouvez importer les fichiers de vidage à l'aide de DBMS_CLOUD.COPY_DATA ou appeler DBMS_CLOUD.CREATE_EXTERNAL_TABLE pour créer une table externe.

    • Sur n'importe quel autre service Oracle Database, tel qu'Oracle Database 19c sur place, vous pouvez importer les fichiers de vidage créés avec la procédure DBMS_CLOUD.EXPORT_DATA à l'aide du pilote d'accès ORACLE_DATAPUMP. Pour plus d'informations, voir Déchargement et chargement de données avec le pilote d'accès ORACLE_DATAPUMP.

  • La valeur de paramètre query que vous fournissez peut être une interrogation avancée, si nécessaire, telle qu'une interrogation qui inclut des jointures ou des sous-interrogations.

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 ADMIN ou avoir l'accès WRITE au répertoire.

  • DBMS_CLOUD.EXPORT_DATA ne 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_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 le paramètre de format type avec la valeur datapump :

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.dmp',
      format => json_object('type' value 'datapump', 'compression' value 'basic', 'version' value 'latest'),
      query => 'SELECT lakehouse_id, quantity FROM inventories'
     );
   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.

L'exemple suivant montre 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;
/  

L'exemple suivant montre 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;
/

L'exemple suivant montre 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, 'encryption' value ('user_defined_function' value 'ADMIN.decryption_callback')));
     );
   END;
/  

L'exemple suivant montre DBMS_CLOUD.EXPORT_DATA exportant des données vers un emplacement de répertoire avec le paramètre type avec la valeur datapump :

BEGIN
 DBMS_CLOUD.EXPORT_DATA(
    file_uri_list => 'export_dir:sales.dmp',
    format        => json_object('type' value 'datapump'),
    query         => 'SELECT * FROM sales'
 );
END;
/

GET_OBJECT Procédure et fonction

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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 des détails, voir Formats d'URI DBMS_CLOUD.

directory_name

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

Note de bas de page 1
Vous pouvez utiliser une URL d'hyperlien de table comme suit :
  • Spécifiez une seule URL d'hyperlien de table de base de données de l'IA autonome.

  • Spécifiez une liste délimitée par des virgules d'URL d'hyperliens de table de base de données du service d'intelligence artificielle autonome. Vous devez vous assurer que tous les hyperliens de table inclus doivent avoir les mêmes noms de colonne, ordre de colonne et types de données de colonne dans le même schéma.

Pour plus d'informations, voir À propos des hyperliens de table sur la base de données d'IA autonome et Procédure CREATE_URL.

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'administrateur pour accorder les privilèges d'écriture à adb_user :

GRANT WRITE ON DIRECTORY data_pump_dir TO adb_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;
/

Pour lire des données de caractère à partir d'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 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_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 droits de lecture à adb_user :

    GRANT READ ON DIRECTORY data_pump_dir TO adb_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_FILES n'obtient pas la valeur de somme de contrôle et retourne NULL pour ce champ.

  • DBMS_CLOUD.LIST_FILES prend en charge le filtrage sélectif des fichiers à l'aide de la syntaxe directory:filename. Les caractères génériques sont pris en charge dans le nom de fichier.

Exemple :

Il s'agit d'une fonction pipelinée qui retourne une ligne 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

Exemples d'interrogation utilisant des caractères génériques :

Vous pouvez 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 1 : Listez 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 2 : Listez 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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 DBMS_CLOUD.

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 "*" et "?" sont considérés comme des caractères génériques.

Exemple utilisant des caractères génériques :

location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.csv'

Notes d'utilisation

  • Selon les capacités 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 le magasin d'objets :

    Magasin d'objets CREATED LAST_MODIFIED
    Oracle Cloud Infrastructure natif Horodatage des retours Horodatage des retours
    Swift d'Oracle Cloud Infrastructure Retourne NULL Horodatage des retours
    Oracle Cloud Infrastructure - Classique Retourne NULL Horodatage des retours
    Amazon S3 Retourne NULL Horodatage des retours
    Compatible avec Amazon S3 Retourne NULL Horodatage des retours
    Azure Horodatage des retours Horodatage des retours
    Référentiel GitHub    
  • 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. Une valeur de somme de contrôle différente est attendue si les données d'identification OCI$RESOURCE_PRINCIPAL sont utilisées.

  • 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.

MOVE_OBJECT Procédure

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 permettant d'accéder au service de stockage d'objets en nuage source.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur source_credential_name, credential_name est réglé à NULL.

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 DBMS_CLOUD.

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 DBMS_CLOUD.

target_credential_name

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

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez 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. 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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

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 des détails, voir Formats d'URI DBMS_CLOUD.

directory_name

Nom du répertoire dans la base de données d'intelligence artificielle autonome.

Note de bas de page 2

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 : NULL

Note de bas de page 2

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'administrateur pour accorder les privilèges de lecture à adb_user :

GRANT READ ON DIRECTORY data_pump_dir TO adb_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 ou stockage Azure Data Lake

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 DBMS_CLOUD.

SYNC_EXTERNAL_PART_TABLE Procédure

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 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 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 IA 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 de l'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 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 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 format type réglé à la valeur avro, orc ou parquet, le paramètre stop_on_error a toujours la valeur TRUE. Ainsi, le badfile de la table sera toujours vide pour une table externe faisant référence aux fichiers Avro, ORC ou Parquet.

Notes 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.

VALIDATE_HYBRID_PART_TABLE Procédure

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 de la base de données 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.

DBMS_CLOUD pour la gestion de fichiers en masse

Sous-programmes pour les opérations de fichier en masse dans l'ensemble DBMS_CLOUD.

Sous-programme Description
BULK_COPY Procédure

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

BULK_DELETE Procédure

La procédure supprime des fichiers du seau ou du dossier de stockage d'objets en nuage.

BULK_DOWNLOAD Procédure

Cette procédure télécharge les fichiers du seau du magasin d'objets en nuage dans un répertoire d'Autonomous Database.

BULK_MOVE Procédure

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

BULK_UPLOAD Procédure

Cette procédure charge les fichiers d'un répertoire dans Autonomous Database vers le stockage d'objets en nuage.

BULK_COPY Procédure

Cette procédure copie en masse des fichiers d'un seau de stockage d'objets en nuage vers un autre. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id.

Vous pouvez filtrer la liste des fichiers à supprimer à l'aide d'un modèle d'expression rationnelle compatible avec l'opérateur REGEXP_LIKE.

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.

Syntaxe

DBMS_CLOUD.BULK_COPY (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_COPY (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL,
      operation_id            OUT NUMBER
);

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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur source_credential_name, credential_name est réglé à NULL.

source_location_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.

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 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.

Exemple utilisant des expressions rationnelles :

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

Exemple utilisant des caractères génériques :

source_location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE pour plus d'informations sur la condition REGEXP_LIKE.

target_location_uri

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

Ce paramètre est obligatoire.

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 DBMS_CLOUD.

target_credential_name

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

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur target_credential_name, target_location_uri est réglé à la valeur source_credential_name.

regex_filter

Spécifie l'expression REGEX pour filtrer les fichiers. Le modèle d'expression REGEX doit être compatible avec l'opérateur REGEXP_LIKE.

Si vous n'indiquez pas de valeur regex_filter, regex_filter est réglé à NULL.

Pour plus d'informations, voir ConditionREGEXP_LIKE.

format

Spécifie les options de configuration supplémentaires pour l'opération de fichier. Ces options sont spécifiées en tant que chaîne JSON.

Les options de formatage prises en charge sont les suivantes :
  • logretention : Accepte une valeur entière qui détermine la durée en jours pendant laquelle la table de statuts est conservée pour une opération en masse.

    La valeur par défaut est de 2 jours.

  • logprefix : Accepte une valeur de chaîne qui détermine la chaîne de préfixe du nom de la table de statut d'opération en masse.

    Le type d'opération est la valeur par défaut. Pour BULK_COPY, la valeur par défaut de logprefix est COPYOBJ.

  • priority : Accepte une valeur de chaîne qui détermine le nombre d'opérations de fichier exécutées simultanément.

    Une opération avec une priorité supérieure consomme plus de ressources de base de données et doit s'exécuter plus rapidement.

    Il accepte les valeurs suivantes :

    • HIGH : Détermine le nombre de fichiers parallèles traités à l'aide du nombre d'OCPU de la base de données (nombre d'OCPU si votre base de données utilise des OCPU)

    • MEDIUM : Détermine le nombre de processus simultanés à l'aide de la limite d'accès simultané pour le service Medium. La valeur par défaut est 4.

    • LOW : Traitez les fichiers dans l'ordre des numéros de série.

    La valeur par défaut est MEDIUM.

    Le nombre maximal d'opérations de fichier concurrent est limité à 64.

Si vous n'indiquez pas de valeur format, format est réglé à NULL.

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.

Notes d'utilisation

  • Une erreur est retournée lorsque les URI source et cible pointent vers le même seau ou dossier de stockage d'objets.

Exemple

BEGIN 
DBMS_CLOUD.BULK_COPY (
     source_credential_name => 'OCI_CRED',
     source_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
     target_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
     format       => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
);
END;
/

BULK_DELETE Procédure

Cette procédure supprime en masse des fichiers du service de stockage d'objets en nuage. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id. Vous pouvez filtrer la liste des fichiers à supprimer à l'aide d'un modèle d'expression rationnelle compatible avec l'opérateur REGEXP_LIKE.

Syntaxe

 DBMS_CLOUD.BULK_DELETE(
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_DELETE (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT 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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur credential_name, credential_name est réglé à NULL.

location_uri

Spécifie l'URI, qui pointe vers un emplacement de stockage d'objets dans la base de données Autonomous Database.

Ce paramètre est obligatoire.

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 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.

Exemple :

location_uri => '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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE pour plus d'informations sur la condition REGEXP_LIKE.

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

regex_filter

Spécifie l'expression REGEX pour filtrer les fichiers. Le modèle d'expression REGEX doit être compatible avec l'opérateur REGEXP_LIKE.

Si vous n'indiquez pas de valeur regex_filter, regex_filter est réglé à NULL.

Pour plus d'informations, voir ConditionREGEXP_LIKE.

format

Spécifie les options de configuration supplémentaires pour l'opération de fichier. Ces options sont spécifiées en tant que chaîne JSON.

Les options de formatage prises en charge sont les suivantes :
  • logretention : Accepte une valeur entière qui détermine la durée en jours pendant laquelle la table de statuts est conservée pour une opération en masse.

    La valeur par défaut est de 2 jours.

  • logprefix : Accepte une valeur de chaîne qui détermine la chaîne de préfixe du nom de la table de statut d'opération en masse.

    Le type d'opération est la valeur par défaut. Pour BULK_DELETE, la valeur par défaut de logprefix est DELETE.

  • priority : Accepte une valeur de chaîne qui détermine le nombre d'opérations de fichier exécutées simultanément.

    Une opération avec une priorité plus élevée consomme plus de ressources de base de données et est terminée plus tôt.

    Il accepte les valeurs suivantes :

    • HIGH : Détermine le nombre de fichiers parallèles traités à l'aide du nombre d'UC de la base de données (nombre d'OCPU si votre base de données utilise des OCPU).

    • MEDIUM : Détermine le nombre de processus simultanés à l'aide de la limite d'accès simultané pour le service Medium. La valeur par défaut est 4.

    • LOW : Traitez les fichiers dans l'ordre des numéros de série.

    La valeur par défaut est MEDIUM.

    Le nombre maximal d'opérations de fichier concurrent est limité à 64.

Si vous n'indiquez pas de valeur format, format est réglé à NULL.

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.BULK_DELETE (    
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     format          => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKDEL')
);
END;
/

BULK_DOWNLOAD Procédure

Cette procédure télécharge les fichiers dans un répertoire Autonomous Database à partir du stockage d'objets en nuage. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id. Vous pouvez filtrer la liste des fichiers à télécharger à l'aide d'un modèle d'expression rationnelle compatible avec l'opérateur REGEXP_LIKE.

Syntaxe

DBMS_CLOUD.BULK_DOWNLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_DOWNLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT 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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur credential_name, credential_name est réglé à NULL.

location_uri

Spécifie l'URI, qui pointe vers un emplacement de stockage d'objets dans la base de données Autonomous Database.

Ce paramètre est obligatoire.

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 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.

Exemple :

location_uri => '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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE pour plus d'informations sur la condition REGEXP_LIKE.

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

directory_name

Nom du répertoire dans la base de données Autonomous Database à partir duquel vous voulez télécharger les fichiers.

Ce paramètre est obligatoire.

regex_filter

Spécifie l'expression REGEX pour filtrer les fichiers. Le modèle d'expression REGEX doit être compatible avec l'opérateur REGEXP_LIKE.

Si vous n'indiquez pas de valeur regex_filter, regex_filter est réglé à NULL.

Pour plus d'informations, voir ConditionREGEXP_LIKE.

format

Spécifie les options de configuration supplémentaires pour l'opération de fichier. Ces options sont spécifiées en tant que chaîne JSON.

Les options de formatage prises en charge sont les suivantes :
  • logretention : Accepte une valeur entière qui détermine la durée en jours pendant laquelle la table de statuts est conservée pour une opération en masse.

    La valeur par défaut est de 2 jours.

  • logprefix : Accepte une valeur de chaîne qui détermine la chaîne de préfixe du nom de la table de statut d'opération en masse. Pour BULK_DOWNLOAD, la valeur par défaut de logprefix est DOWNLOAD.

    Le type d'opération est la valeur par défaut.

  • priority : Accepte une valeur de chaîne qui détermine le nombre d'opérations de fichier exécutées simultanément.

    Une opération avec une priorité plus élevée consomme plus de ressources de base de données et est terminée plus tôt.

    Il accepte les valeurs suivantes :

    • HIGH : Détermine le nombre de fichiers parallèles traités à l'aide du nombre d'UC de la base de données (nombre d'OCPU si votre base de données utilise des OCPU).

    • MEDIUM : Détermine le nombre de processus simultanés à l'aide de la limite d'accès simultané pour le service Medium. La valeur par défaut est 4.

    • LOW : Traitez les fichiers dans l'ordre des numéros de série.

    La valeur par défaut est MEDIUM.

    Le nombre maximal d'opérations de fichier concurrent est limité à 64.

Si vous n'indiquez pas de valeur format, format est réglé à NULL.

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.BULK_DOWNLOAD (    
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     directory_name  => 'BULK_TEST',
     format          => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKOP')
 );
END;
/

BULK_MOVE Procédure

Cette procédure déplace en masse des fichiers d'un seau ou d'un dossier de stockage d'objets en nuage vers un autre. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id.

Vous pouvez filtrer la liste des fichiers à supprimer à l'aide d'un modèle d'expression rationnelle compatible avec l'opérateur REGEXP_LIKE.

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é.

La première étape du déplacement des fichiers consiste à les copier vers l'emplacement cible, puis à supprimer les fichiers sources, une fois qu'ils ont été copiés.

L'objet est renommé plutôt que déplacé si le magasin d'objets permet de renommer les opérations entre les emplacements source et cible.

Syntaxe

DBMS_CLOUD.BULK_MOVE (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_MOVE (
      source_credential_name  IN  VARCHAR2 DEFAULT NULL,
      source_location_uri     IN  VARCHAR2,
      target_location_uri     IN  VARCHAR2,
      target_credential_name  IN  VARCHAR2 DEFAULT NULL,
      regex_filter            IN  VARCHAR2 DEFAULT NULL,
      format                  IN  CLOB     DEFAULT NULL,
      operation_id            OUT NUMBER
);

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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur source_credential_name, credential_name est réglé à NULL.

source_location_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.

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 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.

Exemple utilisant des expressions rationnelles :

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

Exemple utilisant des caractères génériques :

source_location_uri => 'https://objectstorage.my$region.oraclecloud.com/n/namespace-string/b/bucketname/o/year=????/month=??/*.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 d'URI DBMS_CLOUD.

Voir Condition REGEXP_LIKE pour plus d'informations sur la condition REGEXP_LIKE.

target_location_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 que vous utilisez, pour plus de détails, voir Formats d'URI DBMS_CLOUD.

target_credential_name

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

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur target_credential_name, target_location_uri est réglé à la valeur source_credential_name.

regex_filter

Spécifie l'expression REGEX pour filtrer les fichiers. Le modèle d'expression REGEX doit être compatible avec l'opérateur REGEXP_LIKE.

Si vous n'indiquez pas de valeur regex_filter, regex_filter est réglé à NULL.

Pour plus d'informations, voir ConditionREGEXP_LIKE.

format

Spécifie les options de configuration supplémentaires pour l'opération de fichier. Ces options sont spécifiées en tant que chaîne JSON.

Les options de formatage prises en charge sont les suivantes :
  • logretention : Accepte une valeur entière qui détermine la durée en jours pendant laquelle la table de statuts est conservée pour une opération en masse.

    La valeur par défaut est de 2 jours.

  • logprefix : Accepte une valeur de chaîne qui détermine la chaîne de préfixe du nom de la table de statut d'opération en masse.

    Le type d'opération est la valeur par défaut. Pour BULK_MOVE, la valeur par défaut de logprefix est MOVE.

  • priority : Accepte une valeur de chaîne qui détermine le nombre d'opérations de fichier exécutées simultanément.

    Une opération avec une priorité plus élevée consomme plus de ressources de base de données et est terminée plus tôt.

    Il accepte les valeurs suivantes :

    • HIGH : Détermine le nombre de fichiers parallèles traités à l'aide du nombre d'UC de la base de données (nombre d'OCPU si votre base de données utilise des OCPU).

    • MEDIUM : Détermine le nombre de processus simultanés à l'aide de la limite d'accès simultané pour le service Medium. La valeur par défaut est 4.

    • LOW : Traitez les fichiers dans l'ordre des numéros de série.

    La valeur par défaut est MEDIUM.

    Le nombre maximal d'opérations de fichier concurrent est limité à 64.

Si vous n'indiquez pas de valeur format, format est réglé à NULL.

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.BULK_MOVE (    
     source_credential_name => 'OCI_CRED',
     source_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname1/o',
     target_location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname2/o',
     format                 => JSON_OBJECT ('logretention' value 7, 'logprefix' value 'BULKMOVE')
);
END;
/
Note

Une erreur est retournée lorsque les URI source et cible pointent vers le même seau ou dossier de stockage d'objets.

BULK_UPLOAD Procédure

Cette procédure copie les fichiers dans le stockage d'objets en nuage à partir d'un répertoire Autonomous Database. Le formulaire surchargé vous permet d'utiliser le paramètre operation_id.

Syntaxe

DBMS_CLOUD.BULK_UPLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL
);

DBMS_CLOUD.BULK_UPLOAD (
     credential_name  IN  VARCHAR2 DEFAULT NULL,
     location_uri     IN  VARCHAR2,
     directory_name   IN  VARCHAR2,
     regex_filter     IN  VARCHAR2 DEFAULT NULL,
     format           IN  CLOB     DEFAULT NULL,
     operation_id     OUT 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.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

Si vous n'indiquez pas de valeur credential_name, credential_name est réglé à NULL.

location_uri

Spécifie l'URI, qui pointe vers un emplacement de stockage d'objets pour charger des fichiers.

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 DBMS_CLOUD.

directory_name

Nom du répertoire dans la base de données Autonomous Database à partir duquel vous chargez des fichiers.

Ce paramètre est obligatoire.

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 :'MY_DIR:filename.ext'. Par défaut, le nom de répertoire MY_DIR est un objet de base de données non sensible à la casse. Le nom du fichier est sensible à la casse.

Les expressions rationnelles ne sont pas prises en charge lors de la spécification des noms de fichier dans un répertoire. Vous ne pouvez utiliser que des caractères génériques pour spécifier des noms de fichier dans un répertoire. Le caractère "*" peut être utilisé pour plusieurs caractères, et le caractère "?" 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 spécifier 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'. Cela spécifie que filename commence par une soumission (').

regex_filter

Spécifie l'expression REGEX pour filtrer les fichiers. Le modèle d'expression REGEX doit être compatible avec l'opérateur REGEXP_LIKE.

Si vous n'indiquez pas de valeur regex_filter, regex_filter est réglé à NULL.

Pour plus d'informations, voir ConditionREGEXP_LIKE.

format

Spécifie les options de configuration supplémentaires pour l'opération de fichier. Ces options sont spécifiées en tant que chaîne JSON.

Les options de formatage prises en charge sont les suivantes :
  • logretention : Accepte une valeur entière qui détermine la durée en jours pendant laquelle la table de statuts est conservée pour une opération en masse.

    La valeur par défaut est de 2 jours.

  • logprefix : Accepte une valeur de chaîne qui détermine la chaîne de préfixe du nom de la table de statut d'opération en masse.

    Le type d'opération est la valeur par défaut. Pour BULK_UPLOAD, la valeur par défaut de logprefix est UPLOAD.

  • priority : Accepte une valeur de chaîne qui détermine le nombre d'opérations de fichier exécutées simultanément.

    Une opération avec une priorité plus élevée consomme plus de ressources de base de données et est terminée plus tôt.

    Il accepte les valeurs suivantes :

    • HIGH : Détermine le nombre de fichiers parallèles traités à l'aide du nombre d'UC de la base de données (nombre d'OCPU si votre base de données utilise des OCPU).

    • MEDIUM : Détermine le nombre de processus simultanés à l'aide de la limite d'accès simultané pour le service Medium. La valeur par défaut est 4.

    • LOW : Traitez les fichiers dans l'ordre des numéros de série.

    La valeur par défaut est MEDIUM.

    Le nombre maximal d'opérations de fichier concurrent est limité à 64.

Si vous n'indiquez pas de valeur format, format est réglé à NULL.

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.BULK_UPLOAD ( 
     credential_name => 'OCI_CRED',
     location_uri    => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
     directory_name  => 'BULK_TEST',
     format          => JSON_OBJECT ('logretention' value 5, 'logprefix' value 'BULKUPLOAD')
 );
END;
/

API REST de DBMS_CLOUD

Cette section décrit les API REST DBMS_CLOUD fournies avec Autonomous AI Database.

API REST Description

Fonction GET_RESPONSE_HEADERS

Cette fonction retourne les en-têtes de réponse HTTP en tant que données JSON dans un objet JSON de la base de données autonome d'IA.

Fonction GET_RESPONSE_RAW

Cette fonction retourne la réponse HTTP au format RAW de la base de données d'IA autonome. Ceci est utile si la réponse HTTP doit être au format binaire.

Fonction GET_RESPONSE_STATUS_CODE

Cette fonction retourne le code de statut de réponse HTTP en tant qu'entier dans la base de données d'intelligence artificielle autonome. Le code de statut permet de déterminer si la demande a réussi.

Fonction GET_RESPONSE_TEXT

Cette fonction retourne la réponse HTTP au format TEXT (VARCHAR2 ou CLOB) dans la base de données d'IA autonome. Habituellement, la plupart des API REST en nuage retournent une réponse JSON au format texte. Cette fonction est utile si vous pensez que la réponse HTTP est au format texte.

Fonction GET_API_RESULT_CACHE_SIZE

Cette fonction retourne la taille de mémoire cache des résultats configurée.

SEND_REQUEST Fonction et procédure

Cette fonction démarre une demande HTTP, obtient la réponse et met fin à la réponse dans la base de données d'IA autonome. Cette fonction fournit un flux de travail pour envoyer une demande d'API REST en nuage avec des arguments, un code de réponse de retour et des données utiles.

SET_API_RESULT_CACHE_SIZE Procédure

Cette procédure définit la taille maximale du cache pour la session en cours.

Aperçu de l'API REST DBMS_CLOUD

Lorsque vous utilisez PL/SQL dans votre application et que vous devez appeler des API REST en nuage, vous pouvez utiliser DBMS_CLOUD.SEND_REQUEST pour envoyer les demandes d'API REST.

Les fonctions d'API REST DBMS_CLOUD vous permettent de faire des demandes HTTP à l'aide de DBMS_CLOUD.SEND_REQUEST et d'obtenir et d'enregistrer des résultats. Ces fonctions fournissent une API générique qui vous permet d'appeler n'importe quelle API REST avec les services en nuage pris en charge suivants :

Constantes d'API REST DBMS_CLOUD

Décrit les constantes DBMS_CLOUD pour effectuer des demandes HTTP à l'aide de DBMS_CLOUD.SEND_REQUEST.

DBMS_CLOUD prend en charge les méthodes HTTP GET, PUT, POST, HEAD et DELETE. La méthode d'API REST à utiliser pour une demande HTTP est généralement documentée dans la documentation sur l'API REST en nuage.

Le nom Type Valeur
METHOD_DELETE VARCHAR2(6) 'DELETE'
METHOD_GET VARCHAR2(3) 'GET'
METHOD_HEAD VARCHAR2(4) 'HEAD'
METHOD_POST VARCHAR2(4) 'POST'
METHOD_PUT VARCHAR2(3) 'PUT'

Mémoire cache des résultats de l'API REST DBMS_CLOUD

Vous pouvez enregistrer les résultats de l'API REST DBMS_CLOUD lorsque vous réglez le paramètre cache à Vrai avec DBMS_CLOUD.SEND_REQUEST. La vue SESSION_CLOUD_API_RESULTS décrit les colonnes que vous pouvez utiliser lors de l'enregistrement des résultats de l'API REST.

Par défaut, les appels d'API REST DBMS_CLOUD n'enregistrent pas les résultats de votre session. Dans ce cas, vous utilisez la fonction DBMS_CLOUD.SEND_REQUEST pour retourner des résultats.

Lorsque vous utilisez DBMS_CLOUD.SEND_REQUEST et réglez le paramètre cache à TRUE, les résultats sont enregistrés et vous pouvez voir les résultats passés dans la vue SESSION_CLOUD_API_RESULTS. L'enregistrement et l'interrogation des résultats historiques des demandes d'API REST DBMS_CLOUD peuvent vous aider lorsque vous devez utiliser vos résultats précédents dans vos applications.

Par exemple, pour interroger les résultats récents de l'API REST DBMS_CLOUD, utilisez la vue SESSION_CLOUD_API_RESULTS :

SELECT timestamp FROM SESSION_CLOUD_API_RESULTS;

Lorsque vous enregistrez les résultats de l'API REST DBMS_CLOUD avec DBMS_CLOUD.SEND_REQUEST, les données enregistrées ne sont disponibles que dans la même session (connexion). Une fois la session terminée, les données enregistrées ne sont plus disponibles.

Utilisez DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE et DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE pour voir et définir la taille de la mémoire cache de l'API REST DBMS_CLOUD et pour désactiver la mise en mémoire cache.

Paramètre cache_scope Résultats de l'API REST DBMS_CLOUD

Lorsque vous enregistrez les résultats de l'API REST DBMS_CLOUD avec DBMS_CLOUD.SEND_REQUEST, l'accès aux résultats dans SESSION_CLOUD_API_RESULTS est fourni en fonction de la valeur de cache_scope.

Par défaut, cache_scope est 'PRIVATE' et seul l'utilisateur courant de la session peut accéder aux résultats. Si vous réglez cache_scope à 'PUBLIC', tous les utilisateurs de session peuvent accéder aux résultats. La valeur par défaut de cache_scope spécifie que chaque utilisateur ne peut voir que les résultats de l'API REST DBMS_CLOUD.SEND_REQUEST générés par les procédures qu'il appelle avec les droits de l'appelant. Lorsque vous appelez DBMS_CLOUD.SEND_REQUEST dans une session, il existe trois possibilités qui déterminent si l'utilisateur courant peut voir les résultats dans le cache, en fonction de la valeur cache_scope :

  • Vous exécutez directement DBMS_CLOUD.SEND_REQUEST en tant qu'énoncé de niveau supérieur et l'appel à DBMS_CLOUD.SEND_REQUEST et aux résultats de l'API REST sont enregistrés avec le même nom d'utilisateur. Dans ce cas, vous avez accès à tous les résultats avec la valeur par défaut, 'PRIVATE', définie pour cache_scope.

  • Vous écrivez une procédure de droits d'appel d'encapsuleur et, en tant qu'utilisateur courant, votre appel avec DBMS_CLOUD.SEND_REQUEST appelle la procédure et les résultats de l'API REST sont enregistrés avec le même nom d'utilisateur. Dans ce cas, et vous avez accès à tous les résultats avec la valeur par défaut, 'PRIVATE', définie pour cache_scope.

  • Vous écrivez une procédure de droits du créateur de wrapper et la procédure appartient à un autre utilisateur. Lorsque vous appelez DBMS_CLOUD.SEND_REQUEST dans la procédure, les résultats sont enregistrés avec le nom d'utilisateur du responsable de la procédure.

    Dans ce cas, un autre utilisateur des droits du créateur appelle DBMS_CLOUD.SEND_REQUEST et les résultats de l'API REST sont enregistrés avec le responsable de la procédure du créateur. Dans ce cas, par défaut, lorsque cache_scope a la valeur PRIVATE', la session de l'appelant ne peut pas voir les résultats.

    Si le responsable de la procédure du créateur veut que les résultats soient disponibles pour tout utilisateur de session appelant, il doit régler cache_scope à 'PUBLIC' dans DBMS_CLOUD.SEND_REQUEST.

DBMS_CLOUD API REST SESSION_CLOUD_API_RESULTS Voir

Vous pouvez enregistrer les résultats de l'API REST DBMS_CLOUD lorsque vous réglez le paramètre cache à Vrai avec DBMS_CLOUD.SEND_REQUEST. La vue SESSION_CLOUD_API_RESULTS décrit les colonnes que vous pouvez utiliser lors de l'enregistrement des résultats de l'API REST.

La vue SESSION_CLOUD_API_RESULTS est la vue créée si vous mettez en mémoire cache les résultats avec DBMS_CLOUD.SEND_REQUEST. Vous pouvez interroger les résultats historiques appartenant à votre session utilisateur. Lorsque la session se termine, les données dans SESSION_CLOUD_API_RESULTS sont épurées.

Colonne Description
URI URL de demande d'API REST DBMS_CLOUD
TIMESTAMP Horodatage de la réponse de l'API REST DBMS_CLOUD
CLOUD_TYPE Type en nuage de l'API REST DBMS_CLOUD, par exemple Oracle Cloud Infrastructure, AMAZON_S3 et AZURE_BLOB
REQUEST_METHOD Méthode de demande d'API REST DBMS_CLOUD, par exemple GET, PUT, HEAD
REQUEST_HEADERS En-têtes de demande d'API REST DBMS_CLOUD
REQUEST_BODY_TEXT Corps de la demande d'API REST DBMS_CLOUD dans CLOB
RESPONSE_STATUS_CODE Code de statut de réponse de l'API REST DBMS_CLOUD, par exemple 200(OK), 404(Not Found)
RESPONSE_HEADERS En-têtes de réponse de l'API REST DBMS_CLOUD
RESPONSE_BODY_TEXT Corps de réponse de l'API REST DBMS_CLOUD dans CLOB
SCOPE

cache_scope défini par DBMS_CLOUD.SEND_REQUEST. Les valeurs valides sont PUBLIC ou PRIVATE.

Fonction GET_RESPONSE_HEADERS

Cette fonction retourne les en-têtes de réponse HTTP en tant que données JSON dans un objet JSON.

Syntaxe

DBMS_CLOUD.GET_RESPONSE_HEADERS(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN JSON_OBJECT_T;

Paramètres

Paramètre Description
resp

Type de réponse HTTP retourné par DBMS_CLOUD.SEND_REQUEST.

Exceptions

Exception Erreur Description
invalid_response ORA-20025

Objet de type de réponse non valide transmis à DBMS_CLOUD.GET_RESPONSE_HEADERS.

Fonction GET_RESPONSE_RAW

Cette fonction retourne la réponse HTTP au format RAW. Ceci est utile si la réponse HTTP doit être au format binaire.

Syntaxe

DBMS_CLOUD.GET_RESPONSE_RAW(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN BLOB;

Paramètres

Paramètre Description
resp

Type de réponse HTTP retourné par DBMS_CLOUD.SEND_REQUEST.

Exceptions

Exception Erreur Description
invalid_response ORA-20025

Objet de type de réponse non valide transmis à DBMS_CLOUD.GET_RESPONSE_RAW.

Fonction GET_RESPONSE_STATUS_CODE

Cette fonction retourne le code de statut de réponse HTTP en tant qu'entier. Le code de statut permet de déterminer si la demande a réussi.

Syntaxe

DBMS_CLOUD.GET_RESPONSE_STATUS_CODE(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN PLS_INTEGER;

Paramètres

Paramètre Description
resp

Type de réponse HTTP retourné par DBMS_CLOUD.SEND_REQUEST.

Exceptions

Exception Erreur Description
invalid_response ORA-20025

Objet de type de réponse non valide transmis à DBMS_CLOUD.GET_RESPONSE_STATUS_CODE.

Fonction GET_RESPONSE_TEXT

Cette fonction retourne la réponse HTTP au format TEXT (VARCHAR2 ou CLOB). Habituellement, la plupart des API REST en nuage retournent une réponse JSON au format texte. Cette fonction est utile si vous pensez que la réponse HTTP est au format texte.

Syntaxe

DBMS_CLOUD.GET_RESPONSE_TEXT(
       resp          IN DBMS_CLOUD_TYPES.resp)
   RETURN CLOB;

Paramètres

Paramètre Description
resp

Type de réponse HTTP retourné par DBMS_CLOUD.SEND_REQUEST.

Exceptions

Exception Erreur Description
invalid_response ORA-20025

Objet de type de réponse non valide transmis à DBMS_CLOUD.GET_RESPONSE_TEXT.

Fonction GET_API_RESULT_CACHE_SIZE

Cette fonction retourne la taille de mémoire cache des résultats configurée. La taille du cache ne s'applique qu'à la session en cours.

Syntaxe

DBMS_CLOUD.GET_API_RESULT_CACHE_SIZE()
   RETURN NUMBER;

SEND_REQUEST Fonction et procédure

Cette fonction et cette procédure démarrent une demande HTTP, obtiennent la réponse et mettent fin à la réponse. Cette fonction fournit un flux de travail pour envoyer une demande d'API REST en nuage avec des arguments et retourne un code de réponse et des données utiles. Si vous utilisez la procédure, vous pouvez voir les résultats et les détails de la réponse à partir des résultats enregistrés avec la vue SESSION_CLOUD_API_RESULTS.

Syntaxe

DBMS_CLOUD.SEND_REQUEST(
       credential_name    IN VARCHAR2,
       uri                IN VARCHAR2,
       method             IN VARCHAR2,
       headers            IN CLOB DEFAULT NULL,
       async_request_url  IN VARCHAR2 DEFAULT NULL,
       wait_for_states    IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
       timeout            IN NUMBER DEFAULT 0,
       cache              IN PL/SQL BOOLEAN DEFAULT FALSE,
       cache_scope        IN VARCHAR2 DEFAULT 'PRIVATE',
       body               IN BLOB DEFAULT NULL)
   RETURN DBMS_CLOUD_TYPES.resp;

DBMS_CLOUD.SEND_REQUEST(
       credential_name    IN VARCHAR2,
       uri                IN VARCHAR2,
       method             IN VARCHAR2,
       headers            IN CLOB DEFAULT NULL,
       async_request_url  IN VARCHAR2 DEFAULT NULL,
       wait_for_states    IN DBMS_CLOUD_TYPES.wait_for_states_t DEFAULT NULL,
       timeout            IN NUMBER DEFAULT 0,
       cache              IN PL/SQL BOOLEAN DEFAULT FALSE,
       cache_scope        IN VARCHAR2 DEFAULT 'PRIVATE',
       body               IN BLOB DEFAULT NULL);

Paramètres

Paramètre Description

credential_name

Nom des données d'identification pour l'authentification à l'aide de l'API native en nuage correspondante.

Vous pouvez utiliser 'OCI$RESOURCE_PRINCIPAL' comme credential_name lorsque le principal de ressource est activé. Pour plus d'informations, voir ENABLE_RESOURCE_PRINCIPAL.

uri

URI HTTP pour effectuer la demande.

method

Méthode de demande HTTP : GET, PUT, POST, HEAD, DELETE. Utilisez la constante d'ensemble DBMS_CLOUD pour spécifier la méthode.

Pour plus d'informations, voir DBMS_CLOUD Constantes d'API REST.

headers

En-têtes de demande HTTP pour l'API native en nuage correspondante au format JSON. Les en-têtes d'authentification sont définis automatiquement et ne transmettent que des en-têtes personnalisés.

async_request_url

URL de demande asynchrone.

Pour obtenir l'URL, sélectionnez votre API de demande dans la liste des API (voir https://docs.cloud.oracle.com/en-us/iaas/api/). Ensuite, naviguez pour trouver l'API de votre demande dans le volet de gauche. Par exemple, API des services de base de données → Autonomous Database → StopAutonomousDatabase. Cette page présente le répertoire de base de l'API (et le point d'extrémité de base). Ajoutez ensuite le point d'extrémité de base avec le chemin relatif obtenu pour le lien WorkRequest de votre demande de travail.

wait_for_states

Le statut Attendre les états est de type : DBMS_CLOUD_TYPES.wait_for_states_t. Les valeurs suivantes sont valides pour les états attendus : 'ACTIVE', 'CANCELED', 'COMPLETED', 'DELETED', 'FAILED', 'SUCCEEDED'.

Plusieurs états sont autorisés pour wait_for_states. La valeur par défaut de wait_for_states est d'attendre l'un des états attendus : 'ACTIVE', 'CANCELED', 'COMPLETED', 'DELETED', 'FAILED', 'SUCCEEDED'.

timeout

Spécifie la temporisation, en secondes, pour les demandes asynchrones avec les paramètres async_request_url et wait_for_states.

La valeur par défaut est 0. Cela indique d'attendre la fin de la demande sans aucune temporisation.

cache

Si TRUE indique que la demande doit être mise en mémoire cache dans la mémoire cache de l'API de résultats REST.

La valeur par défaut est FALSE, ce qui signifie que les demandes d'API REST ne sont pas mises en mémoire cache.

cache_scope

Indique si tout le monde peut accéder à cette mémoire cache de résultats de demande. Valeurs valides : "PRIVATE" et "PUBLIC". La valeur par défaut est "PRIVATE".

body

Corps de demande HTTP pour les demandes PUT et POST.

Exceptions

Exception Erreur Description
invalid_req_method ORA-20023

La méthode de demande transmise à DBMS_CLOUD.SEND_REQUEST n'est pas valide.

invalid_req_header ORA-20024

Les en-têtes de demande transmis à DBMS_CLOUD.SEND_REQUEST n'ont pas un format JSON valide.

Notes d'utilisation

  • Si vous utilisez Oracle Cloud Infrastructure, vous devez utiliser une valeur de données d'identification basée sur une clé de signature pour credential_name. Pour plus d'informations, voir ProcédureCREATE_CREDENTIAL.

  • Les paramètres facultatifs async_request_url, wait_for_states et timeout vous permettent de traiter les demandes de longue durée. À l'aide de cette forme asynchrone de send_request, la fonction attend le statut d'achèvement spécifié dans wait_for_states avant de retourner. Avec ces paramètres dans la demande d'envoi, vous transmettez les états de retour attendus dans le paramètre wait_for_states et vous utilisez le paramètre async_request_url pour spécifier une demande de travail associée. La demande ne retourne pas immédiatement. À la place, la demande sonde async_request_url jusqu'à ce que l'état de retour soit l'un des états attendus ou que timeout soit dépassé (timeout est facultatif). Si aucune valeur timeout n'est spécifiée, la demande attend qu'un état trouvé dans wait_for_states se produise.

SET_API_RESULT_CACHE_SIZE Procédure

Cette procédure définit la taille maximale du cache pour la session en cours. La taille du cache ne s'applique qu'à la session en cours.

Syntaxe

DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(
       cache_size          IN NUMBER);

Paramètres

Paramètre Description
cache_size

Réglez la taille maximale de la mémoire cache à la valeur spécifiée cache_size. Si la nouvelle taille maximale de la mémoire cache est inférieure à la taille actuelle, les anciens enregistrements sont supprimés jusqu'à ce que le nombre de lignes soit égal à la taille maximale spécifiée. La valeur maximale est 10000.

Si la taille de la mémoire cache est réglée à 0, la mise en mémoire cache est désactivée dans la session.

La taille de mémoire cache par défaut est 10.

Exceptions

Exception Erreur Description
invalid API result cache size ORA-20032

La valeur minimale est 0 et la valeur maximale est 10000. Cette exception s'affiche lorsque la valeur d'entrée est inférieure à 0 ou supérieure à 10000.

Exemple

EXEC DBMS_CLOUD.SET_API_RESULT_CACHE_SIZE(101);

Exemples d'API REST DBMS_CLOUD

Affiche des exemples utilisant DBMS_CLOUD.SEND_REQUEST pour créer et supprimer un seau Oracle Cloud Infrastructure Object Storage, et un exemple pour lister tous les compartiments de la location.

Note

Ces exemples montrent les API de demande Oracle Cloud Infrastructure et exigent que vous utilisiez des données d'identification basées sur une clé de signature pour credential_name. Les données d'identification basées sur la clé de signature Oracle Cloud Infrastructure comprennent les arguments private_key et fingerprint.

Exemple :

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_KEY_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Voir Procédure CREATE_CREDENTIAL pour plus d'informations sur DBMS_CLOUD.CREATE_CREDENTIAL.

Créer un exemple de seau

Affiche un exemple utilisant DBMS_CLOUD.SEND_REQUEST avec la méthode HTTP POST pour créer un seau de magasin d'objets nommé bucketname.

Voir CreateBucket pour plus de détails sur l'API du service Oracle Cloud Infrastructure Object Storage pour cet exemple.

SET SERVEROUTPUT ON
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
BEGIN
  -- Send request
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/',
            method => DBMS_CLOUD.METHOD_POST,
            body => UTL_RAW.cast_to_raw(
                        JSON_OBJECT('name' value 'bucketname',
                                    'compartmentId' value 'compartment_OCID'))
          );
 
  -- Response Body in TEXT format
  dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_text(resp) || CHR(10));
  
  -- Response Headers in JSON format
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
 
  -- Response Status Code
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_status_code(resp));
 
END;
/

Notes :

Exemple de suppression de seau

Affiche un exemple utilisant DBMS_CLOUD.SEND_REQUEST avec la méthode HTTP DELETE pour supprimer un seau de magasin d'objets nommé bucketname.

Voir DeleteBucket pour plus de détails sur l'API du service Oracle Cloud Infrastructure Object Storage pour cet exemple.

SET SERVEROUTPUT ON
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
BEGIN
  -- Send request
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucketname',
            method => DBMS_CLOUD.METHOD_DELETE
          );
 
  -- Response Body in TEXT format
  dbms_output.put_line('Body: ' || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_text(resp) || CHR(10));
  
  -- Response Headers in JSON format
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
 
  -- Response Status Code
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) ||
  DBMS_CLOUD.get_response_status_code(resp));
 
END;
/

Notes :

Exemple de compartiments de liste

Affiche un exemple utilisant DBMS_CLOUD.SEND_REQUEST avec la méthode HTTP GET pour lister tous les compartiments de la location (compartiment racine). Cet exemple montre comment transmettre les en-têtes de demande dans DBMS_CLOUD.SEND_REQUEST.

Voir ListCompartments pour plus de détails sur l'API du service Oracle Cloud Infrastructure Identity and Access Management pour cet exemple.

--
-- List compartments
--
DECLARE
  resp DBMS_CLOUD_TYPES.resp;
  root_compartment_ocid VARCHAR2(512) := '&1';
BEGIN
  -- Send request
  dbms_output.put_line('Send Request');
  resp := DBMS_CLOUD.send_request(
            credential_name => 'OCI_KEY_CRED',
            uri => 'https://identity.region.oraclecloud.com/20160918/compartments?compartmentId=' || root_compartment_ocid,
            method => DBMS_CLOUD.METHOD_GET,
            headers => JSON_OBJECT('opc-request-id' value 'list-compartments')
          );
  dbms_output.put_line('Body: ' || '------------' || CHR(10) || DBMS_CLOUD.get_response_text(resp) || CHR(10));
  dbms_output.put_line('Headers: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_headers(resp).to_clob || CHR(10));
  dbms_output.put_line('Status Code: ' || CHR(10) || '------------' || CHR(10) || DBMS_CLOUD.get_response_status_code(resp));
  dbms_output.put_line(CHR(10));
END;
/

Où : region est une région de point d'extrémité. Pour plus d'informations, voir Informations de référence sur l'API du service de gestion des identités et des accès (IAM) dans Informations de référence sur les API et les points d'extrémité d'API. Par exemple, où region est : uk-london-1.

Exemple de demande asynchrone

Affiche un exemple utilisant DBMS_CLOUD.SEND_REQUEST avec la méthode HTTP POST pour effectuer l'opération d'arrêt d'Autonomous Database et attendre le statut. Cet exemple montre comment utiliser DBMS_CLOUD.SEND_REQUEST avec les paramètres async_request_url, wait_for_states et timeout.

--
-- Sent Work Request Autonomous Database Stop Request with Wait for Status
DECLARE
    l_resp DBMS_CLOUD_TYPES.resp;
    l_resp_json JSON_OBJECT_T;
    l_key_shape JSON_OBJECT_T;
    l_body JSON_OBJECT_T;
    status_array DBMS_CLOUD_TYPES.wait_for_states_t;
BEGIN
  status_array := DBMS_CLOUD_TYPES.wait_for_states_t('SUCCEEDED');
  l_body := JSON_OBJECT_T('{}');
  l_body.put('autonomousDatabaseId', 'ocid');
-- Send request
  dbms_output.put_line(l_body.to_clob);
  dbms_output.put_line('Send Request');
  l_resp := DBMS_CLOUD.send_request(
                       credential_name    => 'NATIVE_CRED_OCI',
                       uri                => 'https://database.region.oraclecloud.com/20160918/autonomousDatabases/ocid/actions/stop',
                       method             => DBMS_CLOUD.METHOD_POST,
                       body               => UTL_RAW.cast_to_raw(l_body.to_clob),
                       async_request_url  => 'https://iaas.region.oraclecloud.com/20160918/workRequests',
                       wait_for_states    => status_array,
                       timeout            => 600
                  );
   dbms_output.put_line('resp body: '||DBMS_CLOUD.get_response_text(l_resp));
   dbms_output.put_line('resp headers: '||DBMS_CLOUD.get_response_headers(l_resp).to_clob);
END;
/

Où : region est une région de point d'extrémité. Pour plus d'informations, voir Informations de référence sur l'API du service de gestion des identités et des accès (IAM) dans Informations de référence sur les API et les points d'extrémité d'API. Par exemple, où region est : uk-london-1.

ocid est l'identificateur de ressource Oracle Cloud Infrastructure. Pour plus d'informations, voir Identificateurs de ressource.



Légende de note de bas de page

Note 3 : La prise en charge des appels d'API REST Azure Cloud est limitée au domaine "blob.windows.net".