Der Oracle Data Modeler bietet dem Datenmodellierer diese Erweiterung durch Skript-Sprachen über die Transformations. Für JavaScript und für JRuby liefert der Data Modeler Beispielskripte mit.
Die Scripting Engine für JRuby muss allerdings erst eingebunden werden.
Für JavaScript war anfangs Mozilla Rhino als Scripting Engine eingebunden, da das JDK zu dieser Zeit Mozilla Rhino umfasste. Nachdem in der JVM Mozilla Rhino durch die Scripting Engine Oracle Nashorn ersetzt wurde, wurde auch im Oracle Data Modeler die Scripting Engine auf Oracle Nashorn umgestellt.
Ab der Version 24.3 benötigt der Oracle SQL Developer und damit auch der Data Modeler mindestens JDK 17 . Oracle Nashorn ist allerdings nur bis Version 14 im JDK enthalten. Daher zeigt der Aufruf der Custom Transformation Scripts jetzt für alle Beispielskripte an, dass die zugehörige Scripting Engine fehlt:
Als Ersatz wird die Verwendung von GraalJS empfohlen, dieses wird auch beim Download des SQL Developer mit JDK im Verzeichnis sqldeveloper\graalJs mitgeliefert.
Um eine Scripting Engine einzubinden, müssen alle von der Engine benötigten JAR-Files dem JDK zur Verfügung gestellt werden, mit dem der SQL Developer ausgeführt wird. Für GraalJS sind dies die Dateien aus dem Verzeichnis sqldeveloper\graalJs:
graal-js-23.0.2.jar
graal-js-scriptengine-23.0.2.jar
graal-regex-23.0.2.jar
graal-sdk-23.0.2.jar
graal-truffle-api-23.0.2.jar
icu4j-74.2.jar
Es gibt zwei Varianten, wie GraalJS in den Oracle SQL Developer Data Modeler eingebunden werden kann:
Im folgenden wird davon ausgegangen, dass der Oracle SQL Developer Data Modeler als Bestandteil des Oracle SQL Developer mit JDK heruntergeladen wurde und dieser im Verzeichnis <sqldeveloper_pfad> abgelegt ist. Dann sind die JAR-Files für GraalJS im Verzeichnis <sqldeveloper_pfad>\graalJs (im folgenden <graaljs_pfad>) zu finden.
Das Einbinden über Konfigurationsdateien erfolgt durch die Anweisung AddJavaLibFile für jedes benötigte JAR-File.
Der einzelne Anwender kann die JAR-Files für GraalJS einbinden, indem er in der Datei
C:\Users\<username>\AppData\Roaming\sqldeveloper\<version>\product.conf (Windows) bzw. ~/.sqldeveloper/<version>/product.conf (Linux) folgende Zeilen anhängt:
AddJavaLibFile <graaljs_pfad>\graal-js-23.0.2.jar
AddJavaLibFile <graaljs_pfad>\graal-js-scriptengine-23.0.2.jar
AddJavaLibFile <graaljs_pfad>\graal-regex-23.0.2.jar
AddJavaLibFile <graaljs_pfad>\graal-sdk-23.0.2.jar
AddJavaLibFile <graaljs_pfad>\graal-truffle-api-23.0.2.jar
AddJavaLibFile <graaljs_pfad>\icu4j-74.2.jar
Für alle Anwender des Rechners können die JAR-Files zentral eingebunden werden, indem folgende Zeilen in der Datei <sqldeveloper_pfad>\sqldeveloper\bin\sqldeveloper.conf (für Linux analog) am Ende eingetragen werden. Hierbei können relative Pfade verwendet werden:
AddJavaLibFile ..\..\graalJs\graal-js-23.0.2.jar
AddJavaLibFile ..\..\graalJs\graal-js-scriptengine-23.0.2.jar
AddJavaLibFile ..\..\graalJs\graal-regex-23.0.2.jar
AddJavaLibFile ..\..\graalJs\graal-sdk-23.0.2.jar
AddJavaLibFile ..\..\graalJs\graal-truffle-api-23.0.2.jar
AddJavaLibFile ..\..\graalJs\icu4j-74.2.jar
Diese Methode kann unter Umständen nur mit Administratorberechtigungen durchgeführt werden.
Der Oracle SQL Developer liest beim Start alle JAR-Files aus dem Modul-Pfad <sqldeveloper_pfad>\modules\javafx\windows-x64\lib (Windows) bzw. <sqldeveloper_pfad>/modules/javafx/linux-x64/lib (Linux) ein. Werden die JAR-Files von GraalJS in dieses Verzeichnis kopiert, erkennt der Oracle SQL Developer die GraalJS Scripting Engine.
Auch diese Methode erfordert unter Umständen Administratorrechte.
Bislang sind die Skripte eingestellt auf die Verwendung der Scripting Engine „Oracle Nashorn“. Für alle Skripte muss dieser Eintrag jetzt noch umgestellt werden auf die Scripting Engine „Graal.js“:
Will man die Scripting Engine „JSR 223 JRuby Engine“ einbinden, benötigt man zunächst das JAR-File
jruby-core-9.4.12.0.jar
für die Scripting Engine (falls vorhanden, auch eine neuere Version). Diese Datei kann man aus dem Maven-Repository herunterladen.
Das Einbinden erfolgt genauso wie bei GraalJS, das abschließende Umstellen der Scripting Engine entfällt.
In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den
Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.