1,讀取檔案操作
檔案內容:
col1 col2 col3
china 1.299 0.004 4.762
usa 0.832 5.196 2.521
讀取指令碼
#!/usr/bin/env python
import cx_oracle
conn = cx_oracle.connect('loge/china@192.168.1.11/prod')
c = conn.cursor()
# 建立乙個列表,後期批量插入
list_line=
# 唯讀開啟檔案
f = open("/root/test.txt", "r")
# 建立乙個變數,用於跳過檔案第一行
line_num = 0
while true:
# 讀取每一行
line1 = f.readline()
line_num +=1
if line1:
#處理每行\n
if (line_num !=1):
line = line1.strip('\n')
# 這裡將字串轉換為逗號隔開的字串
line = ",".join(line.split())
# 這裡將字串轉為列表
line = line.split(",")
print(line)
#list_line=(','.join(line.split())).split(',')
area = line[0]
val1 = float(line[1])
val2 = line[2]
val3 = line[3]
# 這裡組裝列表
print("area:%s,val1:%.3f,val2:%s,val3:%s"%(area,val1,val2,val3))
else:
break
# 關閉檔案
f.close()
# 執行批量插入
c.executemany('insert into t1(area,v1,v2,v3) values(:1,:2,:3,:4)',list_line)
# 提交事務
conn.commit()
#關閉游標
c.close()
# 關閉db連線
cursor.close()
2,其他操作,查詢,呼叫過程,函式
附,使用的過程函式>>> import cx_oracle
>>> conn=cx_oracle.connect('loge/china@192.168.1.11/prod')
>>> c=conn.cursor()
>>> x=c.execute("""select * from t1""")
>>> x.fetchone()
('china', 1.299, 0.004, 4.762, none)
>>> c.close()
>>> c=conn.cursor()
>>> c.prepare("""select * from t1 where area=:id""")
>>> x=c.execute(none,)
>>> for row in x:
... print(row)
...
('china', 1.299, 0.004, 4.762, none)
>>> c.close()
>>> conn.close()
>>>
>>>
>>> #呼叫過程
...
>>> conn=cx_oracle.connect('loge/china@192.168.1.11/prod')
>>> c=conn.cursor()
>>> str1='china'
>>> str2=' '
>>> x=c.callproc('p_demo',[str1,str2])
>>> print(str2)
>>> print(str1)
china
>>> str2=c.var(cx_oracle.string)
>>> x=c.callproc('p_demo',[str1,str2])
>>> print(str2)
>>> print(str2.getvalue)
>>> print(str2.getvalue())
china
>>>
>>>
>>>
>>> #呼叫函式
...
>>> c.close()
>>> c=conn.cursor()
>>> str1='china'
>>> str2=c.callfunc('f_demo',cx_oracle.string,[str1])
>>> print(str2)
china
>>> c.close()
>>> conn.colse()
create or replace procedure p_demo(v1 in varchar2, v2 out varchar2) is
begin
v2 := v1;
end;
create or replace function f_demo(v1 varchar2) return varchar2 is
begin
return v1;
end;
python cx Oracle錯誤集錦
最近專案上線,python連線資料庫部分出現很多問題,總結一下 錯誤一 python3 unicodeencodeerror gbk codec can t encode character in position xx cx oracle.connenct 的引數中設定引數encoding utf...
python cx oracle 環境搭建
背景說明 之前的環境本來是可以用的,是另外乙個專案 python27 需要的時候搭建的。新專案採用的是python36,安裝的cx oracle的版本是7,而環境中的oracle客戶端是11,導致python查詢部分sql語句的時候出現異常 ora 12609 tns receive timeout...
python cx Oracle 模組安裝記錄
在產品的測試中,使用 oracle 進行b2b taobao alipay 使用者資料的 mock 所以要安裝 python 的cx oracle 模組,max os linux 也適用 環境 1 安裝 oracle client 在oracleclient 我的系統是 64位,所以下的64位 ma...