cx Oracle模組介紹

2021-08-27 15:22:55 字數 2694 閱讀 7877

如果要使用編譯好的包, 選擇什麼版本就能講究了. 如果你的機器已經安裝好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...