[英]Connect to Oracle database using python from a Linux server (lxv)
[英]how to connect oracle database from python from unix server
如何從Unix服務器內部的python連接oracle數據庫服務器? 我無法安裝任何軟件包,例如cx_Orcale,pyodbc等。請考慮甚至無法安裝PIP。
它是我的UNIX PROD服務器,所以有很多限制。
我試圖從sqlplus命令運行sql腳本並正常工作。
好的,這里有sqlplus並且可以使用,這意味着那里有oracle驅動程序。
嘗試按以下步驟進行:
1)在$ HOME中創建一個python virtualenv。 在python3中
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,在此處進行了很好的描述: https : //pip.pypa.io/en/stable/installing/
TL; DR:
卷曲https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get_pip.py(這會將pip作為$ HOME / my_env / bin / pip安裝到您的virtualenv中[3]
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_to_Call_sql_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
以上的事情可以幫助我在生產服務器上完成工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.