Saya ingin menjalankan skrip Oracle melalui SQL Plus melalui prompt perintah Windows. Script tidak mengandung perintah "keluar", tapi saya masih ingin SQL Plus untuk keluar, mengembalikan kontrol ke command prompt pada penyelesaian skrip. Tujuan saya adalah melakukan ini tanpa memodifikasi skrip. Apakah ini mungkin?
114
Jawaban:
Cara lain adalah dengan menggunakan perintah ini dalam file batch:
sumber
Saya menemukan ini sebagai solusi terbaik dan bekerja di terminal atau di dalam skrip:
sumber
Menyadari sekarang bahwa masalah Anda mungkin dengan file sql itu sendiri, sadarilah bahwa sqlplus perlu diperintahkan untuk keluar. Cara saya melakukan ini adalah:
(Slash itu penting. Ia memberitahu sqlplus untuk menjalankan statemet di atasnya.)
sumber
Cara terbaik untuk menyembunyikan informasi dan keluar pengguna adalah:
exit
disuplai ke output sqlplus yang memaksanya untuk keluar.-S
menekan semua output server selain kueri sql dalam skrip.sumber
Anda juga dapat melakukan ini di skrip shell Anda.
Anda mungkin perlu melarikan diri dari ";" dengan \.
sumber
Ya, itu mungkin - buat skrip wrapper yang mengatur SQLPlus dengan tepat, sertakan skrip Anda (mis.
@YourTargetScript.sql
), Lalu lakukan jalan keluar.Yang mengatakan, saya tidak merekomendasikan pendekatan ini sama sekali - SQLPlus memiliki banyak sekali gotcha untuk penggunaan terprogram; ketika menulis skrip shell di masa lalu yang menggunakan Oracle, saya membangun pembungkus Python di sekitarnya (menambahkan perilaku penanganan kesalahan yang lebih masuk akal, pemisahan output yang waras antara stdout / stderr, dukungan output CSV asli, dan barang lainnya), dan itu berhasil jauh lebih baik.
sumber
Seperti ini:
Jika Anda menempatkan ini dalam file batch, kontrol akan melanjutkan dengan pernyataan yang mengikutinya.
EDIT: Maaf, coba lagi dengan / nolog flag
sumber
Bagi mereka yang khawatir tentang keamanan memasukkan kata sandi Anda dalam skrip, AskTom memiliki artikel tentang "diidentifikasi secara eksternal" http: //asktom.oracle.com/pls/apex/f? P = 100: 11: 0 ::::: P11_QUESTION_ID: 142212348066
sumber
Dalam SQL Script Anda tambahkan EXIT. Berikut ini contoh file test.bat saya sebagai berikut:
sqlplus user / pwd @ server @ test.SQL> myLOG.LOG
file test.sql saya telah mengikuti: pilih * dari ganda; keluar
sumber
keluar | SQLPLUS / @ @
Ini adalah solusi yang tepat, saya sudah mencoba itu berfungsi
sumber