簡體   English   中英

使用Python插入變量INSERT命令Oracle

[英]insert variables INSERT command Oracle using Python

我在Oracle DB中有一個表,我正在嘗試使用python腳本向其中插入多行。

該表接受具有指定數據類型的以下字段列-數據類型

TAG - NUMBER(38,0)
TAG_ID - NUMBER(38,0)
TAG_STATUS - NUMBER(38,0)
GROUP_ID - NUMBER(38,0)
LIC_PLATE - VARCHAR(20 BYTE)
LIC_PLATE_ID - CHAR(2 BYTE)

我正在使用的sql查詢,

q = ("INSERT INTO TABLE (TAG, TAG_ID, TAG_STATUS_ID, GROUP_ID, LIC_PLATE, LIC_PLATE_ID) VALUES (var1, var2, var3, var4, var5, var6)")

在var1到var6的地方,我正在從一個csv文件讀取。 例如在csv文件中的一行給我

var1 = '11011'
var2 = 25
var3 = 1
var4 = 66
var5 = 'BSB261'
var6 = 'IN'

當我嘗試使用上述信息執行時,它顯然失敗了

cursor.execute(q)
conn.commit()
cursor.close()
conn.close()

我研究了executemany()和其他示例,但我認為我無法獲得表期望的正確格式

請注意,以下查詢在我將值硬編碼的地方也能正常工作

q = ("INSERT INTO TABLE (TAG, TAG_ID, TAG_STATUS_ID, GROUP_ID, LIC_PLATE, LIC_PLATE_ID) VALUES (11011, 25, 1, 66, 'BSB261', 'IN')")

任何幫助表示贊賞,謝謝

找出一種方法來編寫自己的答案(可能會有更好的方法,因此可以隨意添加注釋以進行改進)

q = "INSERT INTO TABLE (TAG, TAG_ID, TAG_STATUS_ID, GROUP_ID, LIC_PLATE, LIC_PLATE_ID) VALUES(:TAG, :TAG_ID, :TAG_STATUS_ID, :GROUP_ID, :LIC_PLATE, :LIC_PLATE_ID)"

然后做:

curs.execute(q, TAG=var1, TAG_ID=var2, TAG_STATUS_ID=var3, GROUP_ID=var4, LIC_PLATE=var5, LIC_PLATE_ID=var6)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM