Cx_Oracle.DatabaseError:ORA-00984:此处不允许列

时间:2015-05-06 12:31:28

标签: oracle python-2.7 cx-oracle

获取此信息: 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:此处不允许列

请协助

1 个答案:

答案 0 :(得分:3)

您需要将所有字符串值放在单引号中(不知道哪些是字符串,哪些数字,所以我确实用单引号创建了所有字符串):

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