如果要使用編譯好的包, 選擇什麼版本就能講究了. 如果你的機器已經安裝好oracle客戶端了, 先要看一下看作業系統的是x64還是i386架構, 再看機器上安裝的oracle客戶端的版本(10g還是11g, 64bit還是32bit), 最後再看你的python版本(2.7還是2.6, 64bit還是32bit). cx_oracle版本一定要選對. 否則即使安裝完也無法使用.
python --version
如何確定python是32bit還是64bit, 在windows下很容易, 進入python shell後, 從提示資訊就能看出. 在linux下, 需要使用file 命令, 比如 file usr/bin/python2.5
#*************************=
# 在windows上安裝 oracle instant client
#*************************=
摸索出 windows上cx-oracle安裝過程確實不易, 看來很少有人在windows 上玩 cx_oracle.
參考文章:
#*************************=
# 在linux安裝前的配置,
#*************************=
參考文章:
在.bash_profile中,
export oracle_home=[your installation path]/instantclient_11_1
export ld_library_path=$ld_library_path:$oracle_home
export nls_lang=.utf8 # 否則會報 ora-***錯誤
另外, 建立libclntsh.so symlink
cd $oracle_home
find .|grep libclntsh, 找到libclntsh.so.x.x,
ln -s libclntsh.so.x.x libclntsh.so
#*************************=
# 在linux上原始碼安裝,
#*************************=
在linux上, 推薦使用原始碼安裝.
python setup.py build
python setup.py install --prefix=/usr/local
#*************************=
# 在linux上rpm安裝,
#*************************=
如果有root賬號, 可以直接安裝cx_oracle的rpm包. 我的linux上已經安裝了多個python版本, 用這種方法安裝, cx_oracle始終不能被import. 可能的解決方法是: 在執行rpm時候, 通過--prefix選項來指定軟體包安裝的路徑
rpm -ivh cx_oracle-5.1-10g-py27-1.x86_64.rpm
或rpm -ivh --nodeps cx_oracle-5.1-10g-py27-1.x86_64.rpm
#*************************=
# cx-oracle的教程 ,
#*************************=
[簡單]
[簡單]
[全面]sidekick - cx_oracle (code paterns)系列
[全面]
[示例]
[介紹]python cx_oracle 5.0新特性
[注意]如果是sqlalchemy+cx_oracle的話, 需要禁掉 connection pool, 否則會有異常. 方法是設定sqlalchemy.poolclass為sqlalchemy.pool.nullpool
如何執行oracle的儲存過程, 並取到儲存過程的out游標
--pl sql
create or replace procedure sp_procedure(
cid int,
rep_date date,
ret out sys_refcursor
) is
begin
open ret for
select
...end;
#python
import cx_oracle
from datetime import date
connstr='user/[email protected]:2521/xe'
connstr='user/pwd@tns'
conn = cx_oracle.connect(connstr)
cursor = conn.cursor()
cid = 1
rep_date = date(2011,06,30)
l_cur = cursor.var(cx_oracle.cursor)
l_query = cursor.callproc('sp_procedure', (cid,rep_date,l_cur))
l_results = l_query[2]
for row in l_results:
print row
# column specs
for row in l_results.description:
print row
cx oracle亂碼問題
參考1 感謝在月光中游來游去 在使用python的cx oracle訪問oracle資料庫時,查詢中文返回亂碼解決方案如下 coding utf 8 import os os.environ nls lang simplified chinese china.utf8 加入以上 即可解決 不過,在c...
cx Oracle安裝總結
背景 由於我準備通過cx oralce來訪問我們資料庫 現在cx oracle的版本是7.3 只支援oralce11.2以上 我們現在用的是oracle10.2,我嘗試把cx oracle7.3刪掉,然後安裝,後面我又安裝5.3這個版本,好像還是不行 於是我降級成version 5.13,還是不行,...
使用 cx oracle連線oracle
1 各種軟體 oracle11g 服務端,客戶端 如果沒有簡易的install包也可以,cx oracle,還有python,注意版本一定要對應,2 安裝 安裝oracle服務端,客戶端 python 如果是windows,將客戶端bin目錄中的ocx.dll copy到python跟目錄 將x o...