У меня есть фрейм данных testdata
, например: Вот типы переменных в Python:
detectorid:int64
starttime:str
volume:float64
speed:float64
occupancy:float64
Теперь я хочу создать таблицу данных в oracle ивставьте в него этот фрейм данных, вот что я попробовал:
import pandas as pd
import cx_Oracle
host = "192.168.1.100"
port = "1521"
sid = "orcl"
dsn = cx_Oracle.makedsn(host, port, sid)
conn = cx_Oracle.connect("scott", "tiger", dsn)
cursor = conn.cursor()
#creat datatable:
sql_creat = "create table portland(detectorid number(32), starttime varchar(32), volume number(32), speed number(32), occupancy number(32))"
cursor.execute(sql_creat)
query = "insert into portland (detectorid,starttime,volume,speed,occupancy) VALUES (%d,'%s',%f,%f,%f)"
#insert by rows:
for i in range(len(testdata)):
detectorid= testdata.ix[i,0]
starttime= testdata.ix[i,1]
volume= testdata.ix[i,2]
speed= testdata.ix[i,3]
occupancy= testdata.ix[i,4]
cursor.execute(query % (detectorid,starttime,volume,speed,occupancy))
conn.commit()
cursor.close()
conn.close()
Однако он дает мне DatabaseError: ORA-00984:column not allowed here
.Я думаю, что что-то не так с типами столбцов в моем выражении sql, но я не знаю, как это решить.Может ли кто-нибудь дать мне несколько инструкций?Спасибо за внимание!