问题
需要把A库中的表同步到B库中,使用jdbc连接执行插入的时候报错,提示 java.sql.SQLException: java.sql.SQLException: 无效的列索引
执行代码如下
import sys
import osl
import jaydebeapi
url = 'jdbc:oracle:thin:@8.142.180.78:1521:MAEASDB'
driver = 'oracle.jdbc.driver.OracleDriver'
userFrom = 'test'
passwordFrom = 'test'
jarFile = 'D:/Tools/JDBC/ojdbc8.jar'
connFrom = jaydebeapi.connect(jclassname=driver,
url=url,
driver_args=[userFrom, passwordFrom],
jars=jarFile)
cursFrom = connFrom.cursor()
userTo = 'MAEAS'
passwordTo = 'MAEAS'
jarFile = 'D:/Tools/JDBC/ojdbc8.jar'
connTo = jaydebeapi.connect(jclassname=driver,
url=url,
driver_args=[userTo, passwordTo],
jars=jarFile)
cursTo = connTo.cursor()
sqlStr = 'select FREGIONCODE, FCATEGORYNUMBER, FCATEGORYNAME, FCATEGORYSUBCODE, FCATEGORYSUBNAME, FPAYITEMNUMBER, FPAYITEMNAME, FPAYITETYPE, FCATEGORYID, FCATEGORYSUBID from CT_CUS_PAYITEMSCATE_INIT'
cursFrom.execute(sqlStr)
resultFrom = cursFrom.fetchall()
#cursTo.execute(sqlStr)
#result = cursFrom.fetchall()
sqlInsert='insert into CT_CUS_PAYITEMSCATE_INIT (FREGIONCODE, FCATEGORYNUMBER, FCATEGORYNAME, FCATEGORYSUBCODE, FCATEGORYSUBNAME, FPAYITEMNUMBER, FPAYITEMNAME, FPAYITETYPE, FCATEGORYID, FCATEGORYSUBID) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);'
#sqlInsert=sqlInsert+" Values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
cursTo = connTo.cursor()
cursTo.executemany(sqlInsert,resultFrom)
#connTo.commit()
#cursTo.execute(sqlStr)
#resultTo = cursFrom.fetchall()
print(sqlInsert)
Java Exception The above exception was the direct cause of the following exception: java.sql.SQLException Traceback (most recent call last) d:\C\jdbc-query.ipynb Cell 1’ in <cell line: 30>() 34 sqlInsert=sqlInsert+" Values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)" 35 #cursTo.execute(sqlInsert,value) —> 36 cursTo.executemany(sqlInsert,resultFrom) 37 connTo.commit()
…
521 for i in range(len(parameters)): 522 # print (i, parameters[i], type(parameters[i])) –> 523 prep_stmt.setObject(i + 1, parameters[i]) java.sql.SQLException: java.sql.SQLException: 无效的列索引