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)+'\')')
得到这个: 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)+'\')')