技術手冊:
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,
這樣就可以按照**的形式列印取得的結果了!
在從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 並按...