Programm aus PL/SQL starten?

Hi

ist es möglich ein Programm aus PL/SQL zu starten oder einen Kommandozeilenbefehl abzusetzen?

Darnest

Hi

da Du keinerlei Einzelheiten mitteilst, bin
ich mal genau so sparsam: die Antwort ist Ja.

Guido

ok

also ich möchte aus einem Oracle Trigger (bzw stored Procedure) ein externes Programm starten das via Kommandozeile angesprochen werden kann. Ich arbeite mit Oracle 8.i. Und wenn Du mir jetzt noch einen Tip gibst wie ich das bewerkstellige bin ich Dir auf Ewig dankbar :wink:

Darnest

Hallo Darnest,
nein - geht nicht. Thomas Kyte hatt das Thema mal ausführlich diskutiert und kam zu dem Schluss, dass man nur über denn Umweg mit Java Stored Procedures machen kann.

Ich würde es aber so lösen (der DAU-Weg):
Ein Cron-Job führt alle X Minuten eine (normalerweise leere) Datei aus (die sinnvollerweise im UTL_FILE Pfad liegt). Oracle kann dann mit PL/SQL Mitteln dieser Datei einen definierbaren Inhalt geben und der Cron-Job zieht diesen Inhalt beim nächsten mal.

Gruß der Janus

PS: Auf jeden Fall nochmal querlesen:
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F495…
http://asktom.oracle.com/pls/ask/f?p=4950:8:10180928…,

hi

nein - geht nicht. Thomas Kyte hatt das Thema mal ausführlich
diskutiert und kam zu dem Schluss, dass man nur über denn
Umweg mit Java Stored Procedures machen kann.

ok das mit JSP war mir schon irgendwie klar
http://www.oracle-base.com/articles/8i/ShellCommands…
habe ich beim selber weiter recherchieren vor ein paar Tagen
gefunden.
Soweit ich das sagen kann funktioniert es schon ganz gut, allerdings
hatte ich einige Probleme die Rechte richtig zu setzen. Evtl. liegt das
hier auch an der Rechnerkonstellation. Hier läuft Oracle 8.1.6 auf
einem NT4 System.

ok kleiner Einschub was ich eigentlich machen möchte.
ich erzeuge einen Datenbank dump den ich dann, zwecks backup,
auf den Fileserver schieben möchte.
Bis jetzt läuft das ganze über OEM Jobs.
Nun ist nach einen Stromausfall letzten der ganze Server so richtig
komplett abgeraucht. Und beim wieder einspielen der Datenbank
ist uns aufgefallen das OEM Jobs nirgends in der Datenbank selbst gehalten
werden wir also alle wieder per hand anlegen musten.
Also versuche ich gerade alle Jobs die sich so in 3 Jahren angesammelt haben
in sql Jobs, die direkt aus der Datenbank laufen, zu überführen.

Beim Test der oben beschriebenen Procedure ist mir halt aufgefallen das
ich die Java permissions nicht so einstellen kann das ich aufs Netzwerk
zugreifen kann, selbst wenn ich direkt auf ein gemapptes Netzlaufwerk zugreife.
Beim weiteren testen ist mir dann aufgefallen das die JSP als „default user“
auf dem nt4 System ausgeführt wird, was ich auch irgendwie nicht geändert
bekomme, was aber die probleme mit den zugriffen erklärt.

Ich würde es aber so lösen (der DAU-Weg):
Ein Cron-Job führt alle X Minuten eine (normalerweise leere)
Datei aus (die sinnvollerweise im UTL_FILE Pfad liegt). Oracle
kann dann mit PL/SQL Mitteln dieser Datei einen definierbaren
Inhalt geben und der Cron-Job zieht diesen Inhalt beim
nächsten mal.

ist eine Möglichkeit. Leider hab ich mit cron-jobs noch nichts
gemacht. müste ich auch erstmal ausprobieren.

Gruß der Janus

PS: Auf jeden Fall nochmal querlesen:
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F495…
http://asktom.oracle.com/pls/ask/f?p=4950:8:10180928…,

danke auf jeden fall für die Antwort
ich werd mich mal über cron-jobs schlau machen

Darnest