python - 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)
解决方案
下面的代码解决了我的问题。我使用 os.popen 而不是 subprocess.Popen
os.popen('./dir_path/script_to_Call_sql_script.sh sql_query.sql').read()
多谢你们 :-)
推荐阅读
- flutter - 如何在小部件颤动中使用具有可见性的 FutureBuilder
- assembly - 使用 mips32 程序集的数组中的最大元素
- npm - 纱线的嵌套依赖项解析未显示在 yarn.lockfile 中
- scala - 使用 sbt 将 Scala 与 Hive 数据库连接起来,使用 IntelliJ 进行依赖
- python - 如何告诉 pandas_datareader 不要四舍五入?
- export - 从 Azure Sql 数据库副本中删除数据同步元数据
- php - CakePHP - 锚类不改变(未定义的变量 $action)
- python - 需要帮助绘制带有一些基本数据的热图
- dictionary - 将键值对添加到 Julia 语言字典中的现有键中
- go - net.Conn.Write 返回什么错误