NVARCHAR值的转换溢出了一个int列以从文件插入



我正在尝试将数据从TXT文件中插入特定表中,并为其具有BPC XML架构。TXT文件包含大量行,由于某种原因,当触手可及时,它会给我一个错误。我已经尝试使用cast as Int,但仍然没有。

这是SQL查询:

INSERT INTO regioneanhotelidmapping(RegionID, EANHotelID)
    SELECT cast(RegionID as int), cast(EANHotelID as int)
     FROM OPENROWSET(BULK 'D:EANRegionEANHotelIDMappingRegionEANHotelIDMapping.txt',
                             FORMATFILE='D:EANeanRefreshbcpxmlRegionEANHotelIDMapping.xml', FIRSTROW = 2) as BCP

这是xml:

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="01" xsi:type="CharTerm" TERMINATOR="|" MAX_LENGTH="2000" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="02" xsi:type="CharTerm" TERMINATOR="n" MAX_LENGTH="2000" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="01" NAME="RegionID"       xsi:type="SQLNVARCHAR" NULLABLE="YES"/>
  <COLUMN SOURCE="02" NAME="EANHotelID"     xsi:type="SQLNVARCHAR" NULLABLE="YES"/>

  </ROW>
</BCPFORMAT>

和错误是:msg 248,级别16,状态1,第1行NVARCHAR值'299999999'的转换溢出了一个int列。

该数字太大了,对于int而言,您需要修改数据类型以使其值为该值。限制为2.3b且更改,您在2.9b并更改。请参阅以下页面以获取参考。

https://learn.microsoft.com/en-us/sql/t-sql/data-types/int-bigint-smallint-smallint-and-tinyint-tinyint-transact-transact-sql

最新更新