簡體   English   中英

通過sqlplus取消Shell腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM