Appeler des procédures externes en tant que fonctions SQL
Affiche les étapes permettant d'appeler des procédures externes à l'aide de PL/SQL au sein de la base de données.
- Présentation 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'une routine ou d'une fonction PL/SQL. - A propos de l'utilisation de procédures externes dans Autonomous Database
Vous pouvez appeler et utiliser des procédures externes dans votre base de données Autonomous AI avec des fonctions définies par l'utilisateur. - Définir la procédure C
Définir la procédure C à l'aide de l'un de ces prototypes. - Création d'un fichier de bibliothèque partagée (.so)
Créer une bibliothèque d'objets partagés (fichier.so). La bibliothèque d'objets partagés contient la procédure C (procédure externe) qui a été définie à l'étape précédente. - Obtenir l'application OCI Marketplace EXTPROC Stack
Indique les étapes à suivre pour obtenir l'application OCI MarketplaceEXTPROCStack. - Lancement de l'application de pile EXTPROC
Lancez l'application de pileEXTPROCà partir de la page Détails de l'application EXTPROC. - Création d'une pile pour l'application d'agent EXTPROC
Affiche les étapes de création d'une pile pour l'instanceEXTPROC. - Téléchargement du portefeuille pour créer une connexion sécurisée vers 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. - Etapes d'appel d'une procédure externe en tant que fonction SQL
Affiche les étapes permettant d'appeler une procédure externe en tant que fonction SQL.
Rubrique parent : Appel de fonctions définies par l'utilisateur
Présentation 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'une routine 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 lorsque :
-
Résoudre les problèmes scientifiques et techniques
-
Analyse des données
-
Contrôle des appareils et des processus en temps réel
Pour plus d'informations, voir Qu'est-ce qu'une procédure externe ?.
Rubrique parent : Appel de procédures externes en tant que fonctions SQL
A propos de l'utilisation de procédures externes dans Autonomous Database
Vous pouvez appeler et utiliser des procédures externes dans votre base de données Autonomous AI 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. Pour utiliser une procédure externe, la procédure est hébergée à distance sur une machine virtuelle exécutée sur un réseau cloud virtuel Oracle Cloud Infrastructure (VCN).
Les procédures externes ne sont prises en charge que lorsque votre base de données Autonomous AI se trouve sur une adresse privée. L'instance d'agent EXTPROC est hébergée sur un sous-réseau privé et la base de données Autonomous AI accède à l'agent EXTPROC via une adresse de connexion inverse (RCE).
Autonomous AI Database 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 :
-
Image de conteneur fournie par Oracle avec l'agent
EXTPROCinstallé et configuré dans le cadre de la pile Oracle Cloud Infrastructure (OCI) Marketplace.L'instance d'agent
EXTPROCest hébergée à distance sur une machine virtuelle exécutée sur un réseau cloud virtuel Oracle Cloud Infrastructure (VCN). La communication sécurisée entre votre base de données Autonomous AI et l'instance d'agentEXTPROCest assurée par la définition de règles de groupe de sécurité réseau de sorte que le trafic soit autorisé entre l'instance de base de données Autonomous AI exécutée sur une adresse privée 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 procédures externes.
Pour plus d'informations, reportez-vous à la section DBMS_CLOUD_FUNCTION Package.
Pour appeler une procédure externe sur une base de données Autonomous AI, procédez comme suit :
-
Définissez la procédure C. Voir Définir la procédure C.
-
Créez une bibliothèque d'objets partagés (fichier
.so). Reportez-vous à la section Create a Shared Library (.so) File. -
Lancez l'application de pile Autonomous AI Database
EXTPROC. Reportez-vous à Obtention de l'application OCI Marketplace EXTPROC Stack. -
Provisionnez et configurez l'agent Oracle Autonomous AI Database
EXTPROC. Pour plus d'informations, reportez-vous à Création d'une pile pour une application d'agent EXTPROC. -
Configurez votre base de données Autonomous AI pour vous connecter à l'instance d'agent
EXTPROC. Pour plus d'informations, reportez-vous à Téléchargement de portefeuille vers l'instance d'agent EXTPROC pour créer une connexion sécurisée. -
Créez une bibliothèque distante à l'aide de
DBMS_CLOUD_FUNCTION.CREATE_CATALOG. Pour plus d'informations, reportez-vous à Etapes permettant d'appeler 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, reportez-vous à Etapes permettant d'appeler une procédure externe en tant que fonction SQL.
Rubrique parent : Appel de procédures externes en tant que fonctions SQL
Définition de la procédure C
Définissez la procédure C en utilisant l'un de ces prototypes.
-
Prototypes de style Kernighan & Ritchie. Par 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). Par exemple :void UpdateSalary(double x) ... -
Autres types de données qui ne changent pas de taille sous les promotions par argument par défaut.
Cet exemple modifie la taille sous Promotions de l'argument par défaut :
void UpdateSalary(float x) ...
Rubrique parent : Appel de procédures externes en tant que fonctions SQL
Création d'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) qui a été définie à l'étape précédente.
Vous générez une bibliothèque d'objets partagée à 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), bibliothèque extproc.so. La procédure UpdateSalary, définie à l'étape précédente, figure 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 : Appel de procédures externes en tant que fonctions SQL
Obtenir l'application OCI Marketplace EXTPROC Stack
Présente les étapes d'obtention de l'application de pile EXTPROC OCI Marketplace.
Rubrique parent : Appel de 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 : Appel de procédures externes en tant que fonctions SQL
Créer une pile pour l'application d'agent EXTPROC
Présente les étapes de création de pile pour l'instance EXTPROC.
Rubrique parent : Appel de procédures externes en tant que fonctions SQL
Télé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 Autonomous AI et l'agent EXTPROC se connectent à l'aide de l'authentification par couche Transport Layer Security (mTLS). Lorsque le protocole mTLS (Mutual Transport Layer Security) est utilisé, les clients se connectent via une connexion de base de données TCP (Secure TCP) à l'aide du Protocole TLS 1.2 standard avec un certificat d'autorité de certificat client sécurisé. Pour plus d'informations, reportez-vous à A propos de la connexion à une instance de base de données Autonomous AI.
Vous pouvez également obtenir et utiliser un certificat public émis par une autorité de certification.
Vous devez au préalable exporter le portefeuille vers Object Storage à partir du répertoire /u01/app/oracle/extproc_wallet sur la machine virtuelle où EXTPROC est exécuté.
Pour télécharger le portefeuille vers votre base de données Autonomous AI, procédez comme suit :
Rubrique parent : Appel de procédures externes en tant que fonctions SQL
Etapes d'appel d'une procédure externe en tant que fonction SQL
Affiche les étapes permettant d'appeler 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 de wrapper SQL qui référencent et appellent leurs procédures externes respectives.
Vous devez au préalable copier les bibliothèques sur liste blanche dans le répertoire /u01/app/oracle/extproc_libs sur la machine virtuelle EXTPROC.
Rubrique parent : Appel de procédures externes en tant que fonctions SQL








