【发布时间】:2015-05-21 11:15:06
【问题描述】:
这是我的情况: 我们在远程机器上设置了 sqlplus,我想连接到该远程机器,然后运行 sqlplus 来执行 sql 查询。我正在尝试编写一个 python 脚本来做到这一点。
这是我的代码:
import sys
import getpass
import paramiko
import time
user=raw_input('Enter User Name :')
#host_name=raw_input('Enter Host Name:')
psswd=getpass.getpass()
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('xxx.hostname.xxx',port=22, username=user, password=psswd)
command='export ORACLE_HOME=/opt/app/oracle/product/10.2.0.2/client export LD_LIBRARY_PATH=$ORACLE_HOME/lib \
sudo -S -H /XX/XX/XX/bin/sqlplus'
print 'running remote command'
print(command)
stdin, stdout, stderr=ssh.exec_command(command)
stdin.write(psswd+'\n')
stdin.flush()
for out in stdout.readlines():
print out
ssh.close()
我有两个问题 首先是如果我通过这样的命令
'export ORACLE_HOME=/opt/app/oracle/product/10.2.0.2/client export LD_LIBRARY_PATH=$ORACLE_HOME/lib \
sudo -S -H /XX/XX/XX/bin/sqlplus' +' echo $ORACLE_HOME'
即使我添加了 echo,我也得到一个空响应,这意味着变量设置不正确。
其次,我不知道接下来该做什么。如何将username/password提供给sqlplus以允许执行sql查询,然后如何提供sql语句。
【问题讨论】:
标签: python oracle python-2.7 ssh paramiko