获取此信息: Cx_Oracle.DatabaseError:ORA-00984:在尝试通过Python在Oracle Spatial DB中插入数据时,此处不允许使用ERROR。
从XLS.Below读取数据是迭代读取和加载值的代码片段:
for r in range (2,high_row ):
long = sheet_ranges['A'+str(r)].value
lat = sheet_ranges['B'+str(r)].value
state = sheet_ranges['C'+str(r)].value
cty = sheet_ranges['D'+str(r)].value
print lat
print long
print state
print cty
cur.execute('INSERT INTO NONMODEL_CAT_HAZARD (LONGITUDE,LATITUDE,STATE,COUNTRY) VALUES ('+str(long)+','+str(lat)+','+str(state)+','+str(cty)+')')
cxn.commit()
输出:
501 0 33.64 -117.84 CA US
追踪(最近一次通话): File" NMCatHazardLoadxls.py",第32行,in cur.execute(' INSERT INTO NONMODEL_CAT_HAZARD(LONGITUDE,LATITUDE,STATE,COUNTRY)值 (' + STR(长)+'&#39 + STR(LAT)+'&#39 + STR(状态)+',' + STR(CTY)+')') cx_Oracle.DatabaseError:ORA-00984:此处不允许列
请协助
答案 0 :(得分:3)
您需要将所有字符串值放在单引号中(不知道哪些是字符串,哪些数字,所以我确实用单引号创建了所有字符串):
cur.execute('INSERT INTO NONMODEL_CAT_HAZARD (LONGITUDE,LATITUDE,STATE,COUNTRY) VALUES (\''+str(long)+'\',\''+str(lat)+'\',\''+str(state)+'\',\''+str(cty)+'\')')