Open tapurox opened 3 years ago
Yay - a testcase! Thank you.
I can see column J doesn't look right - which looks like a potential trap for the unwary. You probably know that technically the setinputsizes()
should/could be like something like:
cur.setinputsizes(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250)
Hi cjbj, thank You for answer and explanation of proper using setinputsizes() function. My mistake, sorry.
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
platform.platform: Windows-10-10.0.17763-SP0 sys.maxsize > 2**32: True platform.python_version: 3.6.2
cx_Oracle.version: 8.2.1 cx_Oracle.clientversion: (12, 2, 0, 1, 0)
It is an error.
After using cursor setinputsizes() function, variable values are misplaced in executemany() so data write to database are invalid. Using cursor executemany() with default array size works well.
Sql to create table: CREATE TABLE EXCEL_TMP (
"A" VARCHAR2(250 BYTE), "B" VARCHAR2(250 BYTE), "C" VARCHAR2(250 BYTE), "D" VARCHAR2(250 BYTE), "E" VARCHAR2(250 BYTE), "F" VARCHAR2(250 BYTE), "G" VARCHAR2(250 BYTE), "H" VARCHAR2(250 BYTE), "I" VARCHAR2(250 BYTE), "J" VARCHAR2(250 BYTE), "K" VARCHAR2(250 BYTE), "L" VARCHAR2(250 BYTE), "M" VARCHAR2(250 BYTE), "N" VARCHAR2(250 BYTE), "O" VARCHAR2(250 BYTE), "P" VARCHAR2(250 BYTE), "Q" VARCHAR2(250 BYTE), "R" VARCHAR2(250 BYTE), "S" VARCHAR2(250 BYTE), "T" VARCHAR2(250 BYTE) );