我在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')")
感谢任何帮助 感谢
答案 0 :(得分:0)
找出一种方法来做这个,所以写我自己的答案(可能有更好的方法来做到这一点,所以随时添加评论改进)
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)