如何从unix服务器从python连接oracle数据库

如何从unix服务器从python连接oracle数据库,python,oracle,unix,Python,Oracle,Unix,如何在unix服务器中从python连接oracle数据库服务器? 我不能安装任何软件包,如cx\u或Cale、pyodbc等。 请考虑PIP无法安装。 它是我的UNIX PROD服务器,因此我有很多限制 我试着从sqlplus命令运行sql脚本,它可以工作。好的,所以有sqlplus,它可以工作,这意味着oracle驱动程序在那里 尝试按以下步骤进行: 1在$HOME中创建python virtualenv。在蟒蛇3中 python -m venv $HOME/my_venv 2激活它 so

如何在unix服务器中从python连接oracle数据库服务器? 我不能安装任何软件包,如cx\u或Cale、pyodbc等。 请考虑PIP无法安装。 它是我的UNIX PROD服务器,因此我有很多限制


我试着从sqlplus命令运行sql脚本,它可以工作。

好的,所以有sqlplus,它可以工作,这意味着oracle驱动程序在那里

尝试按以下步骤进行:

1在$HOME中创建python virtualenv。在蟒蛇3中

python -m venv $HOME/my_venv
2激活它

source $HOME/my_venv/bin/activate[.csh]  # .csh is for cshell, for bash otherwise
3使用新virtualenv提供的python二进制文件安装pip,这里有详细描述:

TL;博士:

curl-o get-pip.py

python get_pip.py这应该以$HOME/my_env/bin/pip[3]的形式将pip安装到您的virtualenv中

4安装cx_Oracle:

pip install cx_Oracle

现在,您应该能够在python代码中导入它并连接到oracle数据库。

我尝试通过SQLPLUS连接oracle数据库,我用以下方式调用脚本:

os.environ['ORACLE_HOME'] = '<ORACEL PATH>'
os.chdir('<DIR NAME>')
VARIBALE=os.popen('./script_to_Call_sql_script.sh select.sql').read()
我的shell脚本:script\u to\u Call\u sql\u script.sh

#!/bin/bash
envFile=ENV_FILE_NAME
envFilePath=<LOACTION_OF_ENV>${envFile}
ORACLE_HOME=<ORACLE PATH>

if  [[ $# -eq 0 ]]
then
      echo "USAGES: Please provide the positional parameter"
      echo "`$basename $0` <SQL SCRIPT NAME>"
fi

ECR=`$ORACLE_HOME/bin/sqlplus -s /@<server_name><<EOF
set pages 0
set head off
set feed off
@$1;
exit
EOF`

echo $ECR

以上内容帮助我完成在生产服务器上完成的工作

如果您不能安装任何软件包,那么您将无法从python访问Oracle。既然如此,为什么你不能安装任何软件包呢?如果这是一项公司政策,你必须向他们指出,他们要求你做不可能的事。这基本上意味着你将两手空空地工作,不得不求助于一些次优的变通办法,而不是正确的方式。因此,在这种情况下,正确的方法是与你的管理层/领导谈谈,展示你的说服技巧,并说服他们正确的方法!你看过完整的问题了吗?OP表示,请考虑甚至PIP是不可安装的。也许他只是不知道它可以在本地安装,而不需要提升权限?pip在服务器上是禁用的。。这是一个工作关键的PROD服务器,有那么多人反对我从外部世界限制cx_Oracle的安装。它是如何被禁用的?在一个无法下载软件包的网络级别上?@RadekHofman是它的生产服务器,我希望只有一台服务器。它使它安装它应该是全球化的所有服务器