-
通过cx_Oracle连接数据库
-
连接之后通过sql语句插入数据库
-
结果出现ORA-01704: string literal too long报错,经过检查发现MPD数据太大,是一个1261x841大小的数组。oracle无法一次插入如此大的数据。
-
我的解决方案是将数据设置为参数传入。
sql = "INSERT INTO QK_PRODUCTION.QB_FORPMPD_HOUR(RECDT,STDT,DT,PRTIME,DTLONG,USERID,MPD,MPI)VALUES" \
"('%s','%s','%s','%d','%d','%s',:mpd,:mpi)" % (
RECDT, params['STDT'], params['DT'], params['PRTIME'], params['DTLONG'], params['PRODUCTER'])
cursor = self.dbConnect.cursor()
cursor.setinputsizes(mpd =oracle.BLOB)
cursor.setinputsizes(mpi=oracle.BLOB)
query = cursor.execute(sql,mpd = value,mpi=value)