現在正好在寫用python批量插入資料,所以就總結下**和過程**現的問題
**如下:
# coding=utf-8
import cx_oracle
from common.myconfig import conf
defrun_sql()
:# 第一步:鏈結資料庫
db_host = conf.get_str(
'oracle'
,'host'
)print
(db_host)
db_port = conf.get_str(
'oracle'
,'port'
) db_user = conf.get_str(
'oracle'
,'user'
) db_pwd = conf.get_str(
'oracle'
,'password'
) db_sid = conf.get_str(
'oracle'
,'service_name'
)# t = db_user + '/' + db_pwd + '@' + db_host + ':' + db_port + '/' + db_sid
# print(t)
conn = cx_oracle.connect(db_user +
'/'+ db_pwd +
'@'+ db_host +
':'+ db_port +
'/'+ db_sid)
# 第二步:建立乙個游標物件
cur = conn.cursor(
)# 第三步:建立乙個列表
character =
# 在(65,67)迴圈
for i in
range(65
,67):
# print(i)
# 函式從指定的ascii值返回字元,並新增至character列表
chr(i)
)# print(character)
# 第四步:在建立乙個列表
qid =
for i in
range(2
):for j in
range(2
):for k in
range(2
):# 迴圈i, j ,k 比如i= 1,j =1,k=1 時 則qmuluaaa
'qmulu'
+ character[i]
+ character[j]
+ character[k]
)# 設定些特別的字段放置列表中,比如時間
user =[0
,'port_no00105'
,"null"
,'gds_spcf_model_desc'
,'sysdate'
,123222256.12345
,'aaa'
]print
(qid)
# 根據qid的長度判斷造幾條資料
for i in
range(1
,len
(qid)):
sql =
"insert into src_lgsaep.port_release_dt " \
"values(%d, %d, %d, '%s', %s, %d, %d, '%s', '%s', '%s', '%s', '%s', %d, '%s', '%s', %d, %s, '%s', %d)"
% \ (i,
2+ i, i, qid[i]
, user[2]
, i, i, user[1]
, user[6]
, user[3]
, user[6]
, user[6]
, i, user[6]
, user[6]
, i,
user[4]
, qid[i]
, user[5]
)# 執行sql
res = cur.execute(sql)
# 關閉浮標
cur.close(
)# 關閉資料庫
conn.commit(
)if __name__ ==
'__main__'
: write_sql(
)
遇到的問題:就是oracle後面不能加;不然會提示報錯
日期盡量用sysdate
Python第三章總結
今天看到了第三章,第三章主要介紹了列表,我認為列表就是之前學習的陣列,內容很簡單,就是有幾個函式容易弄混。這個是乙個列表的例子 bicycles trek cannondale redline specialized 想要獲取某乙個元素時,比如第乙個元素,可以使用 bicycles python為訪...
第三章,檢索資料
select prod name from products 上述語句利用select 語句從products表中檢索乙個名為prod name的列,所需要的列名在select 關鍵字之後給出,from關鍵字指出從其中檢索資料的表名 select prod name,prod id,prod nam...
第三章 資料定義
建立資料庫 creat database 資料庫名稱 開啟資料庫 use 資料庫名稱 刪除資料庫 drop database 資料庫名稱 更改資料庫名字 sp renameedp 原資料庫名稱 更改後資料庫名稱 建立資料庫student,並開啟 create database student gou...