把oracle数据库中的A库的CT_CUS_PAYITEMSCATE_INIT表同步到B库中的CT_CUS_PAYITEMSCATE_INIT,想通过insert into select方式实现
按照下面的代码执行后,提示Exception Traceback (most recent call last)
File OraclePreparedStatementWrapper.java:221, in oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject()
File OraclePreparedStatement.java:8370, in oracle.jdbc.driver.OraclePreparedStatement.setObject()
File OraclePreparedStatement.java:8395, in oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal()
File OraclePreparedStatement.java:7639, in oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal()
File OraclePreparedStatement.java:7708, in oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical()
File OraclePreparedStatement.java:4889, in oracle.jdbc.driver.OraclePreparedStatement.setStringInternal()
Exception: Java Exception
The above exception was the direct cause of the following exception:
java.sql.SQLException Traceback (most recent call last)
e:\222\导入基础资料\未命名5.ipynb Cell 1' in <cell line: 36>()
34 sqlInsert=sqlInsert+" Values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
35 #cursTo.execute(sqlInsert,value)
---> 36 cursTo.executemany(sqlInsert,resultFrom)
File d:\Programs\Python\Python\lib\site-packages\jaydebeapi\__init__.py:549, in Cursor.executemany(self, operation, seq_of_parameters)
...
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: 无效的列索引
import sys
import os
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()
#value=()
#for i in range(len(resultFrom)):
# cursTo = connTo.cursor()
# value=(resultFrom[i])
# print(value)
sqlInsert="insert into CT_CUS_PAYITEMSCATE_INIT (FREGIONCODE, FCATEGORYNUMBER, FCATEGORYNAME, FCATEGORYSUBCODE, FCATEGORYSUBNAME, FPAYITEMNUMBER, FPAYITEMNAME, FPAYITETYPE, FCATEGORYID, FCATEGORYSUBID)"
sqlInsert=sqlInsert+" Values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
#cursTo.execute(sqlInsert,value)
cursTo.executemany(sqlInsert,resultFrom)
#connTo.commit()
#cursTo.execute(sqlStr)
#resultTo = cursFrom.fetchall()
#print(sqlInsert)
查询了字段的个数都是相同的,没有找到问题在那里?
墨值悬赏


评论

