2017-02-21 4 views
0

ich ein Bash-Skript müssen SQLPlus, die eine Abfrage oder ProzedurAbfrage von bash senden

Wie kann ich das tun, um SQLPlus zu verbinden hat und ausführen?

Das funktioniert nicht ..

function log_to_sqlplus() { 
    if [ "$1" != "" ] && [ "$2" != "" ]; 
    then 
     sqlplus '$1/$2' <<EOF 
     BEGIN 
       DBTEST.SP_RUN(); 
     END;/
EOF 
    fi 
    } 
+0

Was „doe tut Sn't work "gemein - was passiert? Ist das genau das, was Sie versuchen, oder haben Sie die Formatierung für das Posten geändert? –

+0

@AlexPoole bitte jetzt prüfen –

Antwort

0

Sie sollten die Anmeldeinformationen nicht in einfachen Anführungszeichen, das Protokoll auf Erfolg, auch wenn die Argumente scheinen richtig zu verhindern. (Ich würde vorschlagen, dass Sie wahrscheinlich auch die Flags -s und -l verwenden möchten).

Sie müssen auch den Schrägstrich (/) allein auf einer Linie sein, und es ist in der Regel am Anfang der Zeile dargestellt, obwohl es hier nicht an der Materie scheint:

function log_to_sqlplus() { 
    if [ "$1" != "" ] && [ "$2" != "" ]; 
    then 
     sqlplus -s -l $1/$2 <<EOF 
     BEGIN 
      DBTEST.SP_RUN(); 
     END; 
     /
EOF 
    fi 
} 

Lauf getestet ein Verfahren ich habe Zugang zu:

#!/bin/bash 

function log_to_sqlplus() { 
    if [ "$1" != "" ] && [ "$2" != "" ]; 
    then 
     sqlplus -l -s $1/$2 <<EOF 
     BEGIN 
      -- DBTEST.SP_RUN(); 
      dbms_stats.gather_schema_stats(user); 
     END; 
     /
EOF 
    fi 
} 

log_to_sqlplus my_username my_password 

die Ausgabe bekam:

PL/SQL procedure successfully completed. 
+0

Danke;) Jetzt geht es –

Verwandte Themen