在Python中将echo设置为ON调用Oracle SQL不起作用

时间:2019-09-19 02:53:37

标签: python subprocess

我是Python的初学者,我试图从Python程序访问oracle DB。我可以使用以下代码获取输出。但是,我想要与输出一起运行的SQL查询。我只得到输出。我尝试“设置回显”,但无法正常工作。请帮助我。

{
      resolve: 'gatsby-plugin-mdx',
      options: {
        gatsbyRemarkPlugins: [ `gatsby-remark-images` ],
        plugins: [ 
          {
            resolve : `gatsby-remark-images` 
          },
        ],
      }
    },

当前输出:

#!/usr/bin/python

##  Imports
from subprocess import Popen, PIPE
import os
import sys

sql1='set echo ON; \n select name from v$database;'
sqlplus = Popen(["sqlplus", "-S", "/", "as", "sysdba"], stdout=PIPE, stdin=PIPE)
sqlplus.stdin.write(sql1);

out, err = sqlplus.communicate()
print out

我还希望将SQL查询与以下输出一起打印:

1 个答案:

答案 0 :(得分:0)

使用SQL文件代替直接命令后已修复。

sqlplus = Popen([[“ sqlplus”,“ -S”,“ /”,“ as”,“ sysdba”,“ @ file.sql”],stdout = PIPE,stdin = PIPE)