Appeler des procédures externes en tant que fonctions SQL
Affiche les étapes permettant d'appeler des procédures externes à l'aide de code PL/SQL dans votre base de données.
- Aperçu des procédures externes
Les procédures externes sont des fonctions écrites dans un langage de troisième génération et pouvant être appelées à partir de PL/SQL ou SQL comme s'il s'agissait d'un sous-programme ou d'une fonction PL/SQL. - À propos de l'utilisation des procédures externes dans Autonomous Database
Vous pouvez appeler et utiliser des procédures externes dans votre base de données autonome avec des fonctions définies par l'utilisateur. - Définissez la procédure C
Définissez la procédure C à l'aide de l'un de ces prototypes. - Créer un fichier de bibliothèque partagée (.so)
Créez une bibliothèque d'objets partagés (fichier.so). La bibliothèque d'objets partagés contient la procédure C (procédure externe) définie à l'étape précédente. - Obtenir l'application de pile EXTPROC du service de marché d'applications pour OCI
Affiche les étapes pour obtenir l'application de pileEXTPROCdu service de marché d'applications pour OCI. - Lancer l'application de pile EXTPROC
Lancez l'application de pileEXTPROCà partir de la page Détails de l'application EXTPROC. - Créer une pile pour l'application d'agent EXTPROC
Affiche les étapes pour créer une pile pour l'instanceEXTPROC. - Charger un portefeuille pour créer une connexion sécurisée à l'instance d'agent EXTPROC
Un portefeuille auto-signé est créé dans le cadre de la création de l'application d'agentEXTPROC. Ce portefeuille vous permet d'accéder à l'instance d'agentExtrpoc. - Étapes d'appel d'une procédure externe en tant que fonction SQL
Affiche les étapes d'appel d'une procédure externe en tant que fonction SQL.
Rubrique parent : Appeler des fonctions définies par l'utilisateur
Aperçu des procédures externes
Les procédures externes sont des fonctions écrites dans un langage de troisième génération et pouvant être appelées à partir de code PL/SQL ou SQL comme s'il s'agissait d'un sous-programme ou d'une fonction PL/SQL.
Les procédures externes favorisent la réutilisabilité, l'efficacité et la modularité. Les bibliothèques de liens dynamiques (DLL) existantes écrites dans d'autres langages peuvent être appelées à partir de programmes PL/SQL. Les DLL ne sont chargées qu'en cas de besoin et peuvent être améliorées sans affecter les programmes appelants.
L'utilisation de procédures externes améliore également les performances, car les langages de troisième génération exécutent certaines tâches plus efficacement que le langage PL/SQL, qui est mieux adapté au traitement des transactions SQL.
Les procédures externes sont utiles dans les cas suivants :
-
Résoudre les problèmes scientifiques et d'ingénierie
-
Analyse des données
-
Contrôle des périphériques et des processus en temps réel
Pour plus d'informations, voir Qu'est-ce qu'une procédure externe?.
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL
À propos de l'utilisation des procédures externes dans Autonomous Database
Vous pouvez appeler et utiliser des procédures externes dans votre base de données d'IA autonome avec des fonctions définies par l'utilisateur.
Vous n'installez pas de procédures externes sur une instance de base de données Autonomous AI Database. Pour utiliser une procédure externe, la procédure est hébergée à distance sur une machine virtuelle s'exécutant dans un réseau en nuage virtuel (VCN) Oracle Cloud Infrastructure.
Les procédures externes ne sont prises en charge que lorsque votre base de données IA autonome se trouve sur un point d'extrémité privé. L'instance d'agent EXTPROC est hébergée dans un sous-réseau privé et la base de données IA autonome accède à l'agent EXTPROC au moyen d'un point d'extrémité de connexion inverse.
La base de données autonome d'IA ne prend en charge que les procédures externes en langage C.
Les procédures externes sont déployées à l'aide des éléments suivants :
-
Une image de conteneur fournie par Oracle avec l'agent
EXTPROCinstallé et configuré dans le cadre de la pile du service de marché d'applications pour Oracle Cloud Infrastructure (OCI).L'instance d'agent
EXTPROCest hébergée à distance sur une machine virtuelle s'exécutant dans un réseau en nuage virtuel (VCN) Oracle Cloud Infrastructure. La communication sécurisée entre votre base de données d'IA autonome et l'instance d'agentEXTPROCest assurée en définissant des règles de groupe de sécurité de réseau de sorte que le trafic soit autorisé entre votre instance de base de données d'IA autonome s'exécutant sur un point d'extrémité privé et l'instance d'agentEXTPROC.L'image de l'agent
EXTPROCest préconfigurée pour héberger et exécuter des procédures externes sur le port 16000. -
Procédures PL/SQL permettant de créer une bibliothèque et d'enregistrer et d'appeler des fonctions et des procédures externes.
Pour plus d'informations, voir Ensemble DBMS_CLOUD_FUNCTION.
Suivez ces étapes pour appeler une procédure externe sur Autonomous AI Database :
-
Définissez la procédure C. Voir Définir la procédure C.
-
Créez une bibliothèque d'objets partagés (fichier
.so). Voir Créer un fichier de bibliothèque partagée (.so). -
Lancez l'application de pile Autonomous AI Database
EXTPROC. Voir Obtenir l'application de pile EXTPROC du service de marché d'applications pour OCI. -
Provisionner et configurer l'agent
EXTPROCd'Oracle Autonomous AI Database. Pour plus d'informations, voir Créer une pile pour l'application d'agent EXTPROC. -
Configurez votre base de données d'intelligence artificielle autonome pour vous connecter à l'instance d'agent
EXTPROC. Pour plus d'informations, voir Charger un portefeuille pour créer une connexion sécurisée à l'instance d'agent EXTPROC. -
Créez une bibliothèque distante à l'aide de
DBMS_CLOUD_FUNCTION.CREATE_CATALOG. Pour plus d'informations, voir Étapes d'appel d'une procédure externe en tant que fonction SQL. -
Utilisez la fonction définie par l'utilisateur que vous avez créée à l'étape précédente. Pour plus d'informations, voir Étapes d'appel d'une procédure externe en tant que fonction SQL.
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL
Définir la procédure C
Définissez la procédure C à l'aide de l'un de ces prototypes.
-
Prototypes de style Kernighan & Ritchie. Exemple :
void UpdateSalary(x) float x; ... -
prototypes ISO/ANSI autres que les types de données numériques dont la largeur est inférieure à la largeur totale (tels que
float,short,char). Exemple :void UpdateSalary(double x) ... -
Autres types de données qui ne modifient pas la taille dans les promotions d'argument par défaut.
Cet exemple montre comment modifier la taille dans les promotions d'argument par défaut :
void UpdateSalary(float x) ...
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL
Créer un fichier de bibliothèque partagée (.so)
Créez une bibliothèque d'objets partagés (fichier .so). La bibliothèque d'objets partagés contient la procédure C (procédure externe) définie à l'étape précédente.
Vous générez une bibliothèque d'objets partagés à l'aide de la commande suivante :
gcc -I/u01/app/oracle/extproc_libs/ -shared -fPIC -o extproc.so UpdateSalary.cCela crée l'objet partagé (.so), la bibliothèque extproc.so. La procédure UpdateSalary, définie à l'étape précédente, est contenue dans la bibliothèque extproc.so. Les bibliothèques d'objets partagés (.so) sont chargées dynamiquement lors de l'exécution.
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL
Obtenir l'application de pile EXTPROC pour OCI Marketplace
Affiche les étapes pour obtenir l'application de pile EXTPROC du service de marché d'applications pour OCI.
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL
Lancer l'application de pile EXTPROC
Lancez l'application de pile EXTPROC à partir de la page Détails de l'application EXTPROC.
Vous accédez ainsi à la page Créer une pile qui vous permet de créer une pile pour l'agent EXTPROC.
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL
Créer une pile pour l'application d'agent EXTPROC
Affiche les étapes de création de pile pour l'instance EXTPROC.
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL
Charger le portefeuille pour créer une connexion sécurisée à l'instance d'agent EXTPROC
Un portefeuille auto-signé est créé dans le cadre de la création de l'application d'agent EXTPROC. Ce portefeuille vous permet d'accéder à l'instance d'agent Extrpoc.
EXTPROC, la base de données d'intelligence artificielle autonome et l'agent EXTPROC se connectent à l'aide du protocole mTLS (mutual Transport Layer Security). Lors de l'utilisation de la sécurité de la couche de transport mutuel (mTLS), les clients se connectent au moyen d'une connexion TCPS (TCP sécurisé) à la base de données à l'aide de la norme TLS 1.2 avec un certificat de client approuvé d'une autorité de certification (CA). Pour plus d'informations, voir À propos de la connexion à une instance de base de données du service d'intelligence artificielle autonome.
Vous pouvez également obtenir et utiliser un certificat public émis par une autorité de certification.
Comme préalable, vous devez exporter le portefeuille vers le stockage d'objets à partir du répertoire /u01/app/oracle/extproc_wallet sur la machine virtuelle où EXTPROC s'exécute.
Suivez ces étapes pour charger le portefeuille dans votre base de données d'intelligence artificielle autonome :
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL
Etapes d'appel d'une procédure externe en tant que fonction SQL
Affiche les étapes d'appel d'une procédure externe en tant que fonction SQL.
Après avoir lancé l'application de pile OCI Marketplace EXTPROC et l'avoir configurée pour exécuter des procédures externes, vous créez une bibliothèque de fonctions d'encapsuleur SQL qui référencent et appellent leurs procédures externes respectives.
Comme préalable, les bibliothèques sur liste blanche doivent être copiées dans le répertoire /u01/app/oracle/extproc_libs sur la machine virtuelle EXTPROC.
Rubrique parent : Appeler des procédures externes en tant que fonctions SQL








