Dans la base de données Oracle, une procédure stockée est un morceau de code PL/SQL précompilé qui peut être utilisé pour effectuer et gérer des opérations de base de données. Cependant, lorsqu'il s'agit de certaines exigences métier spécifiques, la procédure stockée elle-même peut ne pas répondre entièrement aux exigences et le code Java doit être appelé pour résoudre le problème. Dans cet article, nous présenterons comment appeler Java dans les procédures stockées Oracle.
Oracle fournit une fonctionnalité appelée JVM (Java Virtual Machine) qui permet d'intégrer du code Java dans les bases de données Oracle. Après avoir activé la fonctionnalité JVM, Oracle pourra exécuter le code source Java et le traiter comme faisant partie d'une procédure stockée.
Lors de l'activation de la fonction Oracle JVM, le kit de développement Java (JDK) et la machine virtuelle Java (JVM) doivent être installés. Avant Oracle 11g, JDK et JVM devaient être installés manuellement, mais à partir d'Oracle 11g, JVM sera installé par défaut dans la base de données Oracle. De plus, certaines variables d'environnement doivent être définies pour garantir qu'Oracle puisse trouver correctement l'emplacement du JDK et de la JVM.
Pour créer une procédure stockée Java dans Oracle, vous devez écrire le code source Java correspondant. Dans l'exemple de code, nous avons créé une classe Java simple qui contient deux méthodes : l'une renvoie la somme de deux entiers et l'autre renvoie le produit de deux entiers.
import oracle.jdbc.*; import java.sql.*; public class JavaProc { public static int add(int a, int b) { return a + b; } public static int multiply(int a, int b) { return a * b; } }
Après avoir enregistré le code source Java, vous devez utiliser un compilateur Java pour le compiler dans un fichier .class. Une fois la compilation terminée, enregistrez le fichier .class dans un répertoire du serveur Oracle.
Ensuite, nous devons créer une procédure stockée Java dans la base de données Oracle. Créez une procédure stockée à l'aide de l'instruction CREATE PROCEDURE, qui inclut l'emplacement et le nom de classe du fichier de code source Java, comme indiqué ci-dessous :
CREATE OR REPLACE PROCEDURE java_proc ( a IN NUMBER, b IN NUMBER, op IN VARCHAR2, result OUT NUMBER ) AS LANGUAGE JAVA NAME 'JavaProc.calculate(int, int, java.lang.String, oracle.jdbc.OracleTypes.NUMBER)' LIBRARY java_proc_jar /
Dans cette procédure stockée, nous définissons 4 paramètres : a, b et op sont des paramètres d'entrée, le résultat est le paramètre de sortie. a et b sont des entiers et op est une chaîne représentant l'opération à effectuer. result est un paramètre de sortie utilisé pour stocker les résultats du calcul.
Dans la procédure stockée, nous avons référencé l'emplacement et le nom de la classe Java que nous avons compilée précédemment : JavaProc.calculate. Lorsque vous spécifiez des noms de classe et de méthode Java, vous devez noter que les noms de classe et de méthode Java sont sensibles à la casse. De plus, nous spécifions également le type de données du paramètre de retour Oracle : oracle.jdbc.OracleTypes.NUMBER.
Avant d'exécuter la procédure stockée, vous devez également empaqueter la classe Java dans un fichier JAR et la charger dans la base de données Oracle. Dans cet exemple, nous empaquetons la classe Java dans un fichier JAR nommé java_proc_jar et le chargeons dans la base de données Oracle.
Pour appeler une procédure stockée Java, utilisez simplement l'instruction CALL comme n'importe quelle autre procédure stockée. Dans cet exemple, nous passerons deux entiers et une chaîne d'opération et stockerons le résultat dans les paramètres de sortie. L'exemple de code est le suivant :
DECLARE a NUMBER; b NUMBER; op VARCHAR2(1); result NUMBER; BEGIN a := 10; b := 20; op := '+'; java_proc(a, b, op, result); DBMS_OUTPUT.PUT_LINE('Result: ' || result); END;
Après avoir appelé la procédure stockée, nous utilisons l'instruction DBMS_OUTPUT.PUT_LINE pour afficher les résultats sur la console.
La fonctionnalité Oracle JVM permet d'appeler du code Java dans des procédures stockées afin d'étendre les capacités de la base de données Oracle. La combinaison de Java avec PL/SQL offre des fonctionnalités de niveau supérieur et une plus grande puissance. En écrivant du code source Java et en le regroupant dans un fichier JAR, puis en le chargeant dans une base de données Oracle, nous pouvons créer des procédures stockées Java et les appeler si nécessaire pour résoudre des besoins commerciaux spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!