[英]RUnning shell script through sqlplus
我在產品環境中以oracle身份登錄,並且我在使用SQLPLUS時需要在遠程主機上運行SHELL腳本。 我正在嘗試通過python做到這一點。 有什么辦法嗎?
我能夠從sqlplus運行SQL腳本或sql命令,如下所示:-
session = Popen(['sqlplus','-S','abc/abc@'+str(hostname)+':1000/'+str(dbname)+''], stdin=PIPE, stdout=PIPE, stderr=PIPE)
session.stdin.write('SPOOL '+str(op_file)+' \n'
' '+str(data)+ '\n');
session.stdin.write(' ; \n')
session.stdin.write('exit \n')
session.stdin.flush()
stdout, stderr = session.communicate()
但是,當我想運行shell腳本時,是否有任何方法可以通過sqlplus本身來完成它,因為通過oracle無法通過ssh和sudoing登錄的另一種方法
我認為這是使用PLSQL做到這一點的方法之一:
http://www.dba-oracle.com/t_execute_shell_script_plsql_procedure.htm
但是不確定。
SQL * Plus是一個客戶端應用程序。 它可以在客戶端計算機上生成將在客戶端上運行shell腳本的進程。 它不能在數據庫服務器上生成進程。
鏈接到該數據庫后,可以在數據庫服務器上使用dbms_scheduler
軟件包在服務器上生成將運行批處理文件的進程。 您可以對Java存儲過程執行類似的操作,因為它也可以在服務器上運行。 如果安裝了適當的調度程序代理, dbms_scheduler
還具有在遠程服務器上運行作業的能力,但這在絕大多數情況下似乎不太有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.