This post helps you how to resolve the BULK INSERT-related error in SQL Server: Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row… , column …
Reproducing the issue with an example
Consider an example where you have a text file which you want to import in SQL Server using BULK INSERT:
Then, let’s say you created the corresponding table in order to import the data:
CREATE TABLE SampleDB.dbo.TestTable ( id int, code varchar(50), descr varchar(50) ); GO
Next, you run the below T-SQL statement in order to import the data in the above table:
BULK INSERT SampleDB.dbo.TestTable FROM 'c:\pathToFile.txt' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR ='\n' ); GO
Right after you run the above T-SQL script, you get the below error message:
Msg 4864, Level 16, State 1, Line 9
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 1 (id).
The answer can be obvious, but also you might need some time to figure it out. The issue in the above example is that you are trying to import the column headers as data!
Featured Online Course – Entity Framework: Getting Started (Complete Beginners Guide)
- Learn how to connect your .NET C# apps to SQL Server databases and efficiently access data via Entity Framework, Entity Framework Core and their workflows.
- Many live demonstrations with Entity Framework on Windows and Entity Framework Core on Linux included.
- 5 hours online course
- Lifetime access
How to resolve the issue
The issue can be easily resolved by including the “FIRSTROW=2” option in your T-SQL code:
BULK INSERT SampleDB.dbo.TestTable FROM 'c:\pathToFile.txt' WITH ( FIRSTROW = 2, FIELDTERMINATOR =',', ROWTERMINATOR ='\n' ); GO
Feel free to check our other relevant articles on SQL Server troubleshooting:
- How to Resolve: Cannot Connect to WMI Provider (SQL Server Configuration Manager)
- Error converting data type varchar to numeric
- Error converting data type varchar to float
- SQLServerAgent could not be started (reason: Unable to connect to server ‘(local)’; SQLServerAgent cannot start)
- ORDER BY items must appear in the select list if SELECT DISTINCT is specified
- There is no SQL Server Failover Cluster Available to Join
- There is insufficient system memory in resource pool ‘internal’ to run this query.
- The SELECT permission was denied on the object ‘extended_properties’, database ‘mssqlsystemresource’, schema ‘sys’.
- … all SQL Server troubleshooting articles
Featured Database Productivity Tools
Snippets Generator: Create and modify T-SQL snippets for use in SQL Management Studio, fast, easy and efficiently.
Dynamic SQL Generator: Convert static T-SQL code to dynamic and vice versa, easily and fast.
Subscribe to our newsletter and stay up to date!
Check out our latest software releases!
Check out Artemakis’s eBooks!
Rate this article:
Reference: SQLNetHub.com (https://www.sqlnethub.com)