- 连接远程Oracle记录
python 想远程访问 Oracle 数据库,需要依赖两个模块:
- Oracle Instant Client ,(作用:代替完整的Oracle Clien);
- 根据系统配置,下载Oracle Instant Client,(此系统是Linux x86-64,可以输入 uname -a 命令来查看),所以以下两个文件:basic和sdk;
instantclient-basic-linux.x64-11.2.0.4.0.zip
instantclient-sdk-linux.x64-11.2.0.4.0.zip
(2)在/opt目录下新建oracle目录,把两个文件放入linux的/opt/oracle目录,并直接解压出instantclient_11_2,结果如下;
(3)设置环境变量,编辑./bash_profile文件,执行如下命令;
vim /root/.bash_profile
ORACLE_HOME=/你的目录/instantclient_11_2/
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
(4)修改完成之后,使你的修改生效,使用指令 source ~/.bashrc,
接下来是建立一个连接libclntsh.so,指令如下:
cd /你的目录/instantclient_11_2/
ln -s libclntsh.so.11.1 libclntsh.so
- cx_Oralce(作用:python连接Oracle的驱动);
(1)下载cx_oracle版本是cx_Oracle-5.2.1.tar.gz,放在/opt/oracle目录下;
- 解压cx_Oracle-5.2.1.tar.gz,命令如下;
tar -xvf cx_Oracle-5.2.1.tar.gz
cd cx_Oracle-5.2.1
python setup.py install
- 如果报错如下;
·原因分析:
sudo env | grep ORACLE_HOME没有输出,说明root用户的oracle环境没有配置,故出现以上错误
·参考:
http://lorcancoyle.org/wiki/public/cxoracle
- 解决办法:
vi /root/.bashrc
追加一下内容,
export ORACLE_HOME=/opt/Oracle/instantclient_11_2
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG='simplified chinese_china'.UTF8
export PATH=$PATH:$ORACLE_HOME/bin
source /root/.bashrc
进入cx_Oracle-5.1.3源代码路径,执行python setup.py install
- 测试是否连通。
Python3
>>>import cx_Oracle
>>>conn =cx_Oracle.connect('u','p','IP:1521/ora10')