首页 > 解决方案 > python脚本中的shell脚本,参数为sql脚本

问题描述

Python脚本:

import subprocess

proc = subprocess.Popen(['sh ' + '/dir_path/script_to_Call_sql_script.sh ' + '\"select ID,DATE,STATUS from XYZ_TABLE;\"'], stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
BOOK=out.split()

上述脚本不适用于提供输出。但是脚本从同一目录中提取默认脚本 select.sql。

如果我删除了 select.sql 查询,则会出现以下错误:

SP2-0310: unable to open file "select.sql"

我想将不同的(总共 6 个)SQL 脚本一一传递给此代码。例如:

proc = subprocess.Popen(['sh ' + '/dir_path/script_to_Call_sql_script.sh ' + ' first.sql'], stdout=subprocess.PIPE, shell=True)

标签: pythonsqlshell

解决方案


下面的代码解决了我的问题。我使用 os.popen 而不是 subprocess.Popen

os.popen('./dir_path/script_to_Call_sql_script.sh sql_query.sql').read()

多谢你们 :-)


推荐阅读