如何使用 python 连接 Oracle(网站)
文章目录
首先,由于网站部署在远程服务器的局域网上面,所以需要通过 ssh tunnel(隧道) 的方式进行本地的映射,主要映射两个端口:
- Oracle 服务:
ssh -fN -L 1521:ip:1521 server
- 远程桌面:
ssh -fN -L 3389:ip:3389 server
python 连接 Oracle 主要使用 cx_Oracle。
步骤:
下载 Instant Client Package - Basic 和 Instant Client Package - SDK 的 rpm 安装包:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
转换为 deb 包:
1 2 3
sudo apt-get install alien sudo alien oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm sudo alien oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
安装 deb 包:
1 2
sudo dpkg -i oracle-instantclient12.1-basic_12.1.0.2.0-2_amd64.deb sudo dpkg -i oracle-instantclient12.1-devel_12.1.0.2.0-2_amd64.deb
设置环境变量(加到 .bashrc 中)
1 2 3
export ORACLE_HOME=/usr/lib/oracle/12.1/client64/ export LD_LIBRARY_PATH=$ORACLE_HOME/lib export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 # 设置 Oracle 编码,解决乱码问题
安装 cx_Oracle:
1 2
sudo apt-get install python-dev python-pip sudo env ORACLE_HOME=$ORACLE_HOME pip install cx_Oracle
使用:
1 2 3 4 5
import cx_Oracle conn = cx_Oracle.connect('user', 'password', '127.0.0.1/orcl') cursor = conn.cursor() cursor.execute('select * from table')
可能遇到的问题:
1
|
ImportError: libaio.so.1: cannot open shared object file: No such file or directory |
解决:
1
|
sudo apt-get install libaio1 libaio-dev |
文章作者 wenzhixin
上次更新 2014-08-04