我有一个包含以下代码的 .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”)。
