cx Oracle使用方法二

2022-08-24 07:21:08 字數 3789 閱讀 4777

技術手冊:

cx_oracle使用方法

正確安裝好cx_oracle之後,要使用它來連線到oracle資料庫進行操作,具體應該分3步走:

>>> import cx_oracle      # 匯入模組 

>>> db = cx_oracle.connect('hr', 'hrpwd', 'localhost:1521/xe') #建立連線,3 個引數分開寫

>>> db1 = cx_oracle.connect('hr/hrpwd@localhost:1521/xe') #建立連線,3 個引數連寫

>>> dsn_tns = cx_oracle.makedsn('localhost', 1521, 'xe')

>>> print dsn_tns

(description=(address_list=(address=(protocol=tcp)(host=localhost)(port=1521)))(connect_data=(sid=xe)))

>>> db2 = cx_oracle.connect('hr', 'hrpwd', dsn_tns)

>>> print db.version

10.2.0.1.0

>>> versioning = db.version.split('.')

>>> print versioning

['10', '2', '0', '1', '0']

>>> if versioning[0]=='10':

... print "running 10g"

... elif versioning[0]=='9':

... print "running 9i"

...running 10g

>>> print db.dsn

localhost:1521/xe

第二步:建立cursor游標

>>>cursor = db.cursor() 

#建立乙個cursor之後,我們可以呼叫這個cursor.execute(『sql『) 來執行sql語句。比如:

>>>cursor.execute(『select * from tabs』)

#執行完畢以後,可以呼叫cursor.fetchall()一次取完所有結果,或者cursor.fetchone()一次取一行結果

>>> row=cursor.fetchall()

>>> for x in row:

for y in x:

print y,

print

這樣就可以按照**的形式列印取得的結果了!

在從oracle取出資料的時候,考慮到它的資料型別了嗎?下面就是資料型別的對應表

oracle

cx_oracle

python

varchar2

nvarchar2

long

cx_oracle.string

strchar

cx_oracle.fixed_char

number

cx_oracle.number

intfloat

float

date

cx_oracle.datetime

datetime.datetime

timestamp

cx_oracle.timestamp

clob

cx_oracle.clob

cx_oracle.lob

blob

cx_oracle.blob

帶引數的查詢:

>>> named_params = 

>>> query1 = cursor.execute('select * from employees where department_id=:dept_id and salary>:sal', named_params)

>>> query2 = cursor.execute('select * from employees where department_id=:dept_id and salary>:sal', dept_id=50, sal=1000)

這種是名字引數,還可以按位置引數:

r1 = cursor.execute('select * from locations where country_id=:1 and city=:2', ('us', 'seattle'))

注意:當只有一次引數的時候,也要把它寫成元組的形式,比如

cursor.execute(『select name from user where id=:1』,(login_id,))

千萬要注意,login_id後面還帶有乙個逗號,如果沒有逗號,他其實就是乙個資料物件,但是當他後面有個逗號的時候,他就變成了元組的乙個資料項,千萬要記住啊,我就是在這裡徘徊了很久。!

cursor. prepare的用法,

這個方法就是在prepare之後,你再去execute的時候,就不用寫上sql語句引數了

>>> cursor.prepare('select * from jobs where min_salary>:min')

>>> r = cursor.execute(none, ) #注意,第乙個引數是none

一次執行多條sql語句:

let's create a table for a python module list, this time directly from python. you will drop it later.

>>> create_table = """

create table python_modules (

module_name varchar2(50) not null,

file_path varchar2(300) not null

)"""

>>> from sys import modules

>>> cursor.execute(create_table)

>>> m =

>>> for m_name, m_info in modules.items():

... try:

... except attributeerror:

... pass

...>>> len(m)

76>>> cursor.prepare("insert into python_modules(module_name, file_path) values (:1, :2)")

>>> cursor.executemany(none, m)

>>> db.commit()

>>> r = cursor.execute("select count(*) from python_modules")

>>> print cursor.fetchone()

(76,)

>>> cursor.execute("drop table python_modules purge")

blob & clob 格式的建立:

binary_content = cursor.var(cx_oracle.blob)

binary_content.setvalue(0, content)

cx Oracle使用方法一

正確安裝好cx oracle之後,要使用它來連線到oracle資料庫進行操作,具體應該分3步走 import cx oracle 匯入模組 db cx oracle.connect hr hrpwd localhost 1521 xe 建立連線,3 個引數分開寫 db1 cx oracle.conn...

greenDao使用方法二

回看上篇文章,發現只簡述了怎麼配置greendao的生成工程,而使用的部分內容忘了寫了,罪過。在這裡補上吧。執行結束,會在你指定的路徑下生成相應的類檔案 daomaster與daosession是必定生成的,負責對資料庫表的操作,而customer和customerdao是在你新增了對應的表結構後生...

wget 最常使用方法(二)

wget http place.your.url here會強制建立伺服器上一模一樣的目錄,如果使用 nd引數,例如 wget m http place.your.url here 這時 wget 會自動判斷合適的引數來製作映象站點。此時,wget 會登入到伺服器上,讀入 robots.txt 並按...