我有一个简单的脚本,从python调用sql脚本
subprocess.call([
'sqlcmd',
'-S', 'server_name',
'-d', 'db name'
'-i', r'path to the script + script name'
])
python脚本运行时没有错误,但从不调用sql脚本。我可以通过命令行sqlcmd "path to the script + script name"
运行sql脚本,它可以按预期工作。你知道吗
我可以使用subprocess
模块毫无问题地调用存储过程
subprocess.Popen([
'sqlcmd',
'-S', 'server_name',
'-d', 'db name'
'-Q', 'exec stored procedure'
])
但是调用一个单独的脚本不会产生任何结果。我尝试过包含shell = True
或使用Popen
,但没有任何改变。你知道吗
为了做更多的测试,我创建了一个测试脚本,它只返回当前数据库的名称。我通过命令行运行了它,没有任何问题
sqlcmd -S server_name -d db_name -i "directory/test1.sql"
,得到预期的结果。我试过用subprocess
模块运行它,但又遇到了问题,我试过subprocess.call_check
,但出现了一个错误,说明exit status 1
。因此,脚本使用命令行运行,但不使用subprocess
模块。你知道吗
我的问题是sql脚本和python脚本的目录,尽管我指定了sql脚本的完整路径。它们分别放在不同的光盘上,当我使用
subprocess.call_check()
时,我会一直得到non-zero exit status 1
。我把两个脚本放在同一个位置,问题就消失了。你知道吗相关问题 更多 >
编程相关推荐