Cx_Oracle.DatabaseError: ORA-00984: column not allowed here

Cx_Oracle.DatabaseError: ORA-00984: column not allowed here

得到这个: Cx_Oracle.DatabaseError: ORA-00984: 尝试通过 Python.

在 Oracle Spatial DB 中插入数据时出现错误

Reading data from 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 加州 美国

回溯(最近调用最后): 文件 "NMCatHazardLoadxls.py",第 32 行,位于 cur.execute('插入 NONMODEL_CAT_HAZARD(经度、纬度、州、国家/地区)值 ('+str(long)+','+str(lat)+','+str(state)+','+str(cty)+')') cx_Oracle.DatabaseError: ORA-00984: 此处不允许列

请协助

你需要把所有的字符串值都用单引号括起来(不知道哪些是字符串,哪些是数字,所以我就全部用单引号括起来了):

cur.execute('INSERT INTO NONMODEL_CAT_HAZARD (LONGITUDE,LATITUDE,STATE,COUNTRY) VALUES (\''+str(long)+'\',\''+str(lat)+'\',\''+str(state)+'\',\''+str(cty)+'\')')