Announcement

Collapse
No announcement yet.

DBMS_PIPE Host command funktioniert nicht (host_command)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DBMS_PIPE Host command funktioniert nicht (host_command)

    Hallo!

    ich verwende folgende Procedure, um ein Befehl auf OS Ebene abzusetzen:

    Code:
    CREATE OR REPLACE FUNCTION host_command( cmd IN VARCHAR2 )
      RETURN INTEGER IS
        STATUS   NUMBER;
        errormsg VARCHAR2(80);
        pipe_name VARCHAR2(30);
    BEGIN
        pipe_name := 'HOST_PIPE';
        dbms_pipe.pack_message( cmd );
        STATUS := dbms_pipe.send_message(pipe_name);
        RETURN STATUS;
        EXCEPTION
      WHEN OTHERS THEN
    --    SWTR_LOGGER.logError(pIDs => 1, pLogFile => 'hostcmd.log', pDomain => 'ARFUL', pPackage => 'none', pFunction => 'host_command',pComment => cmd);
        RAISE;
    END;
    Der Code oben ist mehr oder weniger eine Kopie, wie sie an dutzenden Stellen im Internet zu finden ist.
    Der Befehl (cmd) selbst ist ungefähr ein linux tail *.csv > RESULTFILE. Er funktioniert in der console normal.

    In dieser Variante erhalte ich als Status Rückgabe immer eine 0, es geschieht aber nichts.
    Eine komplexere Variante der Prozedur oben aus der Oracle Hilfe läuft beim send_message ebenfalls durch, liefert aber bei receive_message status 1 zurück, pipe_error.

    Es ist kein Rechte Problem auf das Package. Grant und Revoke auf das Package ergeben jeweils das zugehörige Verhalten.

    Habe ich da irgendwas übersehen? Bis jetzt ist mir anhand der Doku auch gar nicht klar, in welchem Consolen Kontext der Befehl dann läuft.
    Gruß, defo

  • #2
    Hallo defo,

    die PL/SQL Funktion ist nur der erste Teil der Lösung. Der zweite Teil ist ein Skript, das die Pipe ausliest und das gesendete Kommando ausführt.
    s. http://asktom.oracle.com/pls/asktom/...ID:16212348050

    Siegfried

    Comment


    • #3
      Hallo Siegfried,

      danke für den Tip! Wenn ich ehrlich bin, hab ich das schon etwas verdrängt. Konnte mir anders behelfen und dieses Thema erstmal auf die lange Bank geschoben.
      Ich werd es aber nochmal aufarbeiten.
      Gruß, defo

      Comment

      Working...
      X