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.
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? –
@AlexPoole bitte jetzt prüfen –