[Oracle 9i] Javacode als Function

Hi Leute!

Vorweg: Aus der ORA-Doku werde ich einfach nicht schlau und Google konnte mich nicht zu einer Lösung führen.

Mein Wunsch: Ich möchte eine Java-Klasse als Function in SQL zur Verfügung haben. Die Klasse enthält proprietäre Passwortver- und entschlüsselungsmechanismen, womit ich beim Absetzten einer Query u.a. gleich das Passwort klartext sehen möchte. Z.B.

SELECT PW\_DECRYPT(password) FROM persons.

Was muss ich tun bzw. welche Konfigurationen und Voraussetzungen muss meine Datenbank erfüllen?

Danke, Stefan.

hi!

zuerst die java-klasse in der db anlegen mit

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED java_functions AS

public class java_function {
public static String pw_decrypt(…)

dann mit

CREATE OR REPLACE function pw_decrypt(password in varchar2) return varchar2 as
language java name ‚java_function.pw_dcrypt(java.lang.String) return java.lang.String‘;

dann kannst du mittels

SELECT PW_DECRYPT(password) FROM persons.

die java-function per db-function aufrufen

grüße,
tomh

Hi TomH!

Danke für die super Erklärung - hat auch auf (fast) Anheib funktioniert.

Nun habe ich das Problem, dass ich in meiner Klasse sehr viele andere Klassen verwende (z.B. import java.util.* und Eigene). Muss ich nun alle anderen Klassen mit ‚loadjava‘ in Oracle laden oder kann ich irgendwie anders darauf zugreifen? Meine Idee war, den Classpath irgendwie zu erweitern - alles was ich gefunden habe war nur zum Thema CLASSPATH als Umgebungsvariable.

Kannst Du mir da helfen?

Danke, Stefan.

hi!

aaaalso:

die java.util-class z.b. liegt in der datenbank (falls du eine standard-java-db-installation gemacht hast)

beim rest mußt du selber probieren oder einen help-request an oracle richten … dazu fehlt mir leider gerade die zeit

grüße eines weiteren upperaustrians, der in wien landete :wink:
tomh

Paßt scho… solange java.util enthalten ist (in welcher Version wohl?) ist das OK.

Grüße vom Exil-OÖler

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]