Skip to main content
 首页 » 编程设计

python之我可以使用 SQLPlus 来执行 .sql 文件吗

2025年05月04日19yyy_WW

我有一个包含以下代码的 .sql 文件:

delete from stalist 
where stalistid=4944 
/ 
insert into stalist 
(stalistid, staid) 
(select distinct 4944, staid 
from staref 
Where staid in( 
3797,3798, 
3870,4459, 
3871,3872, 
3876,3877, 
0 
)) 
/ 
commit 
/ 

我想使用 Python 从 SQLPlus 执行这个文件。这可能吗?我在这类工作中没有任何 python 经验,需要一些帮助。谢谢!

请您参考如下方法:

请参阅本教程:http://moizmuhammad.wordpress.com/2012/01/31/run-oracle-commands-from-python-via-sql-plus/

即

from subprocess import Popen, PIPE 
 
#function that takes the sqlCommand and connectString and retuns the output and #error string (if any) 
 
def runSqlQuery(sqlCommand, connectString): 
 
session = Popen(['sqlplus', '-S', connectString], stdin=PIPE, stdout=PIPE, stderr=PIPE) 
session.stdin.write(sqlCommand) 
return session.communicate() 

应该这样做(其中 sqlCmmand 是“@scriptname.sql”)。