Heim >Datenbank >Oracle >Die gespeicherte Oracle-Prozedur ruft Java auf

Die gespeicherte Oracle-Prozedur ruft Java auf

王林
王林Original
2023-05-07 19:17:09807Durchsuche

In einer Oracle-Datenbank ist eine gespeicherte Prozedur ein Stück vorkompilierten PL/SQL-Codes, der zum Ausführen und Verwalten von Datenbankoperationen verwendet werden kann. Wenn jedoch bestimmte Geschäftsanforderungen erfüllt werden, erfüllt die gespeicherte Prozedur selbst möglicherweise nicht vollständig die Anforderungen, und zur Lösung des Problems muss Java-Code aufgerufen werden. In diesem Artikel stellen wir vor, wie man Java in gespeicherten Oracle-Prozeduren aufruft.

  1. Oracle JVM-Übersicht

Oracle bietet eine Funktion namens JVM (Java Virtual Machine), mit der Java in Oracle-Datenbankcode eingebettet werden kann. Nach der Aktivierung der JVM-Funktion kann Oracle Java-Quellcode ausführen und ihn als Teil einer gespeicherten Prozedur behandeln.

Wenn Sie die Oracle JVM-Funktion aktivieren, müssen Sie Java Development Kit (JDK) und Java Virtual Machine (JVM) installieren. Vor Oracle 11g mussten JDK und JVM manuell installiert werden, aber ab Oracle 11g wird JVM standardmäßig in der Oracle-Datenbank installiert. Darüber hinaus müssen einige Umgebungsvariablen festgelegt werden, um sicherzustellen, dass Oracle den Speicherort von JDK und JVM korrekt finden kann.

  1. Gespeicherte Java-Prozeduren erstellen

Um eine gespeicherte Java-Prozedur in Oracle zu erstellen, müssen Sie den entsprechenden Java-Quellcode schreiben. Im Beispielcode haben wir eine einfache Java-Klasse erstellt, die zwei Methoden enthält: eine gibt die Summe zweier Ganzzahlen zurück und die andere gibt das Produkt zweier Ganzzahlen zurück.

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

Nachdem Sie den Java-Quellcode gespeichert haben, müssen Sie ihn mit einem Java-Compiler in eine .class-Datei kompilieren. Speichern Sie die .class-Datei nach Abschluss der Kompilierung in einem Verzeichnis auf dem Oracle-Server.

Als nächstes müssen wir eine gespeicherte Java-Prozedur in der Oracle-Datenbank erstellen. Erstellen Sie eine gespeicherte Prozedur mit der CREATE PROCEDURE-Anweisung, die den Speicherort und den Klassennamen der Java-Quellcodedatei enthält, wie unten gezeigt:

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
/

In dieser gespeicherten Prozedur definieren wir 4 Parameter: a, b und op ist der Eingabeparameter und result ist der Ausgabeparameter. a und b sind Ganzzahlen und op ist eine Zeichenfolge, die die auszuführende Operation darstellt. Ergebnis ist ein Ausgabeparameter, der zum Speichern von Berechnungsergebnissen verwendet wird.

In der gespeicherten Prozedur verweisen wir auf den Speicherort und den Klassennamen der Java-Klasse, die wir zuvor kompiliert haben: JavaProc.calculate. Bei der Angabe von Java-Klassen- und Methodennamen sollten Sie beachten, dass bei Java-Klassennamen und Methodennamen die Groß-/Kleinschreibung beachtet werden muss. Darüber hinaus geben wir auch den Datentyp des Oracle-Rückgabeparameters an: oracle.jdbc.OracleTypes.NUMBER.

Bevor Sie die gespeicherte Prozedur ausführen, müssen Sie außerdem die Java-Klasse in eine JAR-Datei packen und in die Oracle-Datenbank laden. In diesem Beispiel packen wir die Java-Klasse in eine JAR-Datei namens java_proc_jar und laden sie in die Oracle-Datenbank.

  1. Aufrufen gespeicherter Java-Prozeduren

Um eine gespeicherte Java-Prozedur aufzurufen, verwenden Sie einfach die CALL-Anweisung wie jede andere gespeicherte Prozedur. In diesem Beispiel übergeben wir zwei Ganzzahlen und eine Operationszeichenfolge und speichern das Ergebnis in den Ausgabeparametern. Der Beispielcode lautet wie folgt:

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;

Nach dem Aufruf der gespeicherten Prozedur verwenden wir die Anweisung DBMS_OUTPUT.PUT_LINE, um die Ergebnisse an die Konsole auszugeben.

  1. Zusammenfassung

Die Oracle JVM-Funktionalität ermöglicht den Aufruf von Java-Code innerhalb gespeicherter Prozeduren, um die Funktionalität der Oracle-Datenbank zu erweitern. Die Kombination von Java mit PL/SQL bietet eine höhere Funktionalität und mehr Leistung. Indem wir Java-Quellcode schreiben, ihn in eine JAR-Datei packen und ihn dann in eine Oracle-Datenbank laden, können wir gespeicherte Java-Prozeduren erstellen und diese bei Bedarf aufrufen, um bestimmte Geschäftsanforderungen zu lösen.

Das obige ist der detaillierte Inhalt vonDie gespeicherte Oracle-Prozedur ruft Java auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Oracle-ParameteränderungNächster Artikel:Oracle-Parameteränderung