Sql server 使用文本文件大容量插入创建表
我试图在SQLServer中使用大容量插入从文本文件创建一个表,但我一直得到大容量加载数据转换错误截断。我做错什么了吗?顶部是文本中的数据,下面是代码Sql server 使用文本文件大容量插入创建表,sql-server,Sql Server,我试图在SQLServer中使用大容量插入从文本文件创建一个表,但我一直得到大容量加载数据转换错误截断。我做错什么了吗?顶部是文本中的数据,下面是代码 '01','INPATIENT FACILITY','010','ACUTE CARE HOSPITAL' '01','INPATIENT FACILITY','011','PRIVATE PSYCHIATRIC HOSPITAL' '01','INPATIENT FACILITY','012','INPATIENT MEDICAL REHAB
'01','INPATIENT FACILITY','010','ACUTE CARE HOSPITAL'
'01','INPATIENT FACILITY','011','PRIVATE PSYCHIATRIC HOSPITAL'
'01','INPATIENT FACILITY','012','INPATIENT MEDICAL REHAB HOSPITAL'
CREATE TABLE [dbo].[PROVIDER_TYPE]
(
[PROVIDER_TYPE_ID] [VARCHAR](2) NULL,
[PROVIDER_TYPE] [VARCHAR](50) NULL,
[PROVIDER_SPECIALITY_ID] [VARCHAR](3) NULL,
[PROVIDER_SPECIALITY] [VARCHAR](50) NULL
) ON [PRIMARY]
BULK INSERT DBO.PROVIDER_TYPE FROM 'C:\SQL\t2.txt'
WITH (
datafiletype = 'char'
,fieldterminator = ','
,ROWTERMINATOR = '\n'
)
第一个值不是2个字符长,而是4个字符。该值为'01';这包括单引号。这就是为什么会出现截断错误,因为如果要在T-SQL中表示字符串,则“01”“01”不适用于varchar2 如果您在SQL Server 2017+上,则可以使用格式和字段报价选项。请注意,我还使用\r\n作为行终止符,正如我在创建文件时使用的一样,如果您的行终止符只包含换行符而不包含回车符,则只使用\r\n:
如果您不使用SQL Server 2017+,那么它就不支持带引号的字段,我建议您使用其他工具。。非常感谢。
BULK INSERT dbo.PROVIDER_TYPE FROM '/mnt/WDBlue/t2.txt' --This was my test file
WITH (DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\r\n',
FORMAT = 'CSV',
FIELDQUOTE = '''');