2012-06-28 5 views

Odpowiedz

13

Nie trzeba będzie zjechać z automatyzacji, ponieważ powinna ona wyjść na koniec pliku mimo to. Więc w jednej linii można zrobić:

echo 'EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);' | sqlplus/as sysdba 
+0

Dzięki. to byłaby najlepsza odpowiedź, ponieważ nie chcę tworzyć dodatkowego .sh lub .sql w ogóle. –

+0

Próbuję tego polecenia z zapytaniem o wybór, ale nic się nie stało. Wystarczy się zalogować, a następnie się rozłączyć. Co powinienem zrobić? –

+0

Wygląda na to, że brakuje ci ';' lub '/' (w linii prostej), aby faktycznie uruchomić polecenie. Tylko zgadnij, będziesz potrzebować dostarczyć więcej szczegółów dla lepszej odpowiedzi – Sodved

3

można wirite przez obserwacji w powłoce

#!/bin/bash 
sqlplus/as sysdba <<EOF 
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE); 
exit 
EOF 

lub można umieścić ten commond w procedurze

0

sqlplus /nolog @your_script.sql

+0

To nie zadziała, ponieważ/nolog zapobiega logowaniu się SQL * Plus do bazy danych. –

+0

Oczywiście, że nie będzie - bez umieszczania komendy 'connect' w skrypcie. – ipip

Powiązane problemy