'loha Folks,
eine Stored Procedure (Oracle) führt folgenden Java Code aus:
Dies funktioniert natürlich nur dann, wenn Schreibrechte in "newDir" erteilt wurden.
Nehmen wir an "newDir" hat den Wert "////IP-ADDRESS/DIRECTORY/NEW_DIR/", wobei es "DIRECTORY" bereits gibt und "NEW_DIR" erstellt werden muss. Für das Erstellen sei zudem eine Berechtigung notwendig, welche der Benutzer "USER" mit dem Passwort "PWD" hat.
Mein noch nicht funktionierender Ansatz wäre folgender:
Es wird also zuerst eine Verbindung zum entsprechenden Örtchen mit dem entsprechenden Benutzer erstellt und danach dort hin geschrieben. Das funktioniert so aber nicht.
Egal was ich auch tue, das Verzeichnis wird stets im Wurzelverzeichnis jenes Laufwerkes erstellt, auf welchem die Datenbank läuft (z.B. C:\IP-ADDRESS\DIRECTORY\NEW_DIR).
Wenn jemand von ähnlichem zu Berichten hat und weiss, wie man es richtig macht, wäre ich um den einen oder anderen Hinweis sehr froh.
Grüsse
hirnstroem
Stored Procedure Code (und so):
eine Stored Procedure (Oracle) führt folgenden Java Code aus:
Java:
(new File(newDir)).mkdirs();
Dies funktioniert natürlich nur dann, wenn Schreibrechte in "newDir" erteilt wurden.
Nehmen wir an "newDir" hat den Wert "////IP-ADDRESS/DIRECTORY/NEW_DIR/", wobei es "DIRECTORY" bereits gibt und "NEW_DIR" erstellt werden muss. Für das Erstellen sei zudem eine Berechtigung notwendig, welche der Benutzer "USER" mit dem Passwort "PWD" hat.
Mein noch nicht funktionierender Ansatz wäre folgender:
Java:
Runtime.getRuntime().exec("net use \\\\IP-ADDRESS\DIRECTORY /user:USER PWD");
(new File(newDir)).mkdirs();
Es wird also zuerst eine Verbindung zum entsprechenden Örtchen mit dem entsprechenden Benutzer erstellt und danach dort hin geschrieben. Das funktioniert so aber nicht.
Egal was ich auch tue, das Verzeichnis wird stets im Wurzelverzeichnis jenes Laufwerkes erstellt, auf welchem die Datenbank läuft (z.B. C:\IP-ADDRESS\DIRECTORY\NEW_DIR).
Wenn jemand von ähnlichem zu Berichten hat und weiss, wie man es richtig macht, wäre ich um den einen oder anderen Hinweis sehr froh.
Grüsse
hirnstroem
Stored Procedure Code (und so):
SQL:
CREATE OR REPLACE JAVA SOURCE NAMED "DirectoryHandler" AS
import java.io.File;
public class DirectoryHandler {
public static void CreateDir(String newDir) {
(new File(newDir)).mkdirs();
}
};
/
ALTER java source "DirectoryHandler" compile;
show errors java source "DirectoryHandler"
CREATE OR REPLACE PROCEDURE CreateDir (p_dir IN VARCHAR2)
AS LANGUAGE JAVA
NAME 'DirectoryHandler.CreateDir(java.lang.String)';
/