簡體   English   中英

如何從unix服務器上的python連接oracle數據庫

[英]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:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM