从 python 运行 sql 脚本时如何仅抑制 SQL*Plus 横幅消息
Posted
技术标签:
【中文标题】从 python 运行 sql 脚本时如何仅抑制 SQL*Plus 横幅消息【英文标题】:How to only suppress SQL*Plus banner messages when running sql script from python 【发布时间】:2021-09-24 17:20:51 【问题描述】:我已经从 Python 执行 Oracle SQL 脚本很长时间了,但从未找到一种方法来仅抑制 SQL*Plus 的横幅以及连接和断开连接消息。
SQL*Plus 本身使用如下代码调用:
session = subprocess.Popen(
args=['sqlplus', '-S', '-L', username+'/'+password+'@'+server), "@".format(script)],
stdin=subprocess.PIPE,
stdout=sys.stdout,
stderr=subprocess.STDOUT,
)
try:
session.communicate(timeout=timeout)
except subprocess.TimeoutExpired:
session.kill()
session.communicate()
code = session.returncode
我知道 SQLPlus 有 -S
静默选项,这会抑制横幅,但是当使用静默选项时,SQLPlus 也会抑制(即使在假脱机文件中)回显命令。
是否有人找到了一种方法来抑制 SQL*Plus 横幅以及连接和断开消息?
【问题讨论】:
【参考方案1】:这似乎是 SQL*Plus 中的一个错误:Bug 17328625
【讨论】:
以上是关于从 python 运行 sql 脚本时如何仅抑制 SQL*Plus 横幅消息的主要内容,如果未能解决你的问题,请参考以下文章
使用 WPF WebBrowser 控件时如何抑制脚本错误?
调用 Set-ExecutionPolicy 时如何抑制来自脚本的警告消息