Posted this to the pyodbc group
(https://groups.google.com/forum/#!topic/pyodbc/22gz4v64ZCw) then to
stackoverflow
(http://stackoverflow.com/questions/30758331/pyodbc-mssql-bulk-insert-fails-but-
no-error-thrown) but have received no answer so far.
What steps will reproduce the problem?
1. Create a table with a floating point column [A]
2. Bulk insert a file with the string 'NaN' instead of a floating point number
[B]
What is the expected output? What do you see instead?
Expected output is an error because it should not be possible to insert a
string in a floating point column.
Instead, no error is thrown even though the bulk insert halts (and silently
fails). You will see that the first row from the file (the number 1.1)is
inserted
Note: When executing through MSSQL server studio I see an error as expected.
The error is:
Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the
specified codepage) for row 2, column 1 (SomeNum).
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The
provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
What version of the product are you using? On what operating system?
Python 2.7.2 on Windows 7, pyodbc version 2.1.8, sqlalchemy version 0.7.6
Please provide any additional information below.
[A]
CREATE TABLE TestBulkInsert (SomeNum FLOAT NOT NULL)
[B]
BULK INSERT MyDBName..testbulkinsert FROM 'see_attached_file' WITH
(FIELDTERMINATOR= ',',ROWTERMINATOR=
'\n',FIRE_TRIGGERS,CHECK_CONSTRAINTS,MAXERRORS= 0,BATCHSIZE= 1);
Original issue reported on code.google.com by sylveste...@gmail.com on 30 Jun 2015 at 8:04
Original issue reported on code.google.com by
sylveste...@gmail.com
on 30 Jun 2015 at 8:04Attachments: