2012-06-28 31 views

Trả lời

13

Bạn sẽ không cần lối ra với tự động hóa vì nó nên thoát vào cuối của tệp. Vì vậy, trên cùng một dòng bạn có thể làm:

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

Cảm ơn. đây sẽ là câu trả lời hay nhất vì tôi không muốn tạo thêm .sh hoặc .sql tại tất cả –

+0

Tôi thử lệnh này với truy vấn chọn nhưng không có gì xảy ra. Nó chỉ cần đăng nhập và sau đó ngắt kết nối. Tôi nên làm gì? –

+0

Có vẻ như bạn đang thiếu một ';' hoặc '/' (trên một dòng riêng của nó) để thực sự chạy lệnh. Chỉ cần đoán, bạn sẽ cần phải cung cấp thêm chi tiết cho một câu trả lời tốt hơn – Sodved

3

bạn có thể wirite bởi theo trong một vỏ

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

hoặc bạn có thể đặt commond này thành một thủ tục

0

sqlplus /nolog @your_script.sql

+0

Điều đó sẽ không hoạt động, vì/nolog ngăn SQL * Plus đăng nhập vào cơ sở dữ liệu. –

+0

Tất nhiên nó sẽ không - mà không đặt lệnh 'connect' vào kịch bản lệnh. – ipip

Các vấn đề liên quan