首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量插入空列UCS-2小端

批量插入空列UCS-2小端
EN

Stack Overflow用户
提问于 2013-02-06 22:22:05
回答 3查看 1.1K关注 0票数 0

我使用bulk insert命令导入一个制表符分隔的文件。我有一个格式文件,如下所示。

代码语言:javascript
复制
8.0
9
1       SQLCHAR       0       50      "\t"                          1     Field1             "SQL_Latin1_General_CP1_CI_AS"
2       SQLCHAR       0       50      "\t"                          2     Field2             "SQL_Latin1_General_CP1_CI_AS"
3       SQLCHAR       0       50      "\t"                          3     Field3             "SQL_Latin1_General_CP1_CI_AS"
4       SQLCHAR       0       50      "\t"                          4     Field4             "SQL_Latin1_General_CP1_CI_AS"
5       SQLCHAR       0       50      "\t"                          5     Field5             "SQL_Latin1_General_CP1_CI_AS"
6       SQLCHAR       0       50      "\t"                          6     Field6             "SQL_Latin1_General_CP1_CI_AS"
7       SQLCHAR       0       50      "\t"                          7     Field7             "SQL_Latin1_General_CP1_CI_AS"
8       SQLCHAR       0       50      "\t"                          8     Field8             "SQL_Latin1_General_CP1_CI_AS"
9       SQLCHAR       0       0       "\r\n"                        9     Field9              "SQL_Latin1_General_CP1_CI_AS"

这对于ANSI文件很好,但是我收到的文件是UCS-2 Little Endian编码。

我尝试使用以下对格式化文件的修改来实现此功能。这会阻止任何错误,但我得到了所有空列的正确行数。如果可能的话,我想避免转换文件。

代码语言:javascript
复制
8.0
9
1       SQLCHAR       0       50      "\t\0"                          1     Field1             "SQL_Latin1_General_CP1_CI_AS"
2       SQLCHAR       0       50      "\t\0"                          2     Field2             "SQL_Latin1_General_CP1_CI_AS"
3       SQLCHAR       0       50      "\t\0"                          3     Field3             "SQL_Latin1_General_CP1_CI_AS"
4       SQLCHAR       0       50      "\t\0"                          4     Field4             "SQL_Latin1_General_CP1_CI_AS"
5       SQLCHAR       0       50      "\t\0"                          5     Field5             "SQL_Latin1_General_CP1_CI_AS"
6       SQLCHAR       0       50      "\t\0"                          6     Field6             "SQL_Latin1_General_CP1_CI_AS"
7       SQLCHAR       0       50      "\t\0"                          7     Field7             "SQL_Latin1_General_CP1_CI_AS"
8       SQLCHAR       0       50      "\t\0"                          8     Field8             "SQL_Latin1_General_CP1_CI_AS"
9       SQLCHAR       0       0       "\r\0\n\0"                      9     Field9               "SQL_Latin1_General_CP1_CI_AS"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-09 08:02:09

就快到了,只需将SQLCHAR更改为SQLNCHAR即可

票数 2
EN

Stack Overflow用户

发布于 2016-07-08 00:11:58

你的问题帮助我得到了另一个类似问题的答案谢谢

"\t\0“是金的!(愚蠢的UNICODE :( )

(我已经有了SQLNCHAR SQLNVARCHAR部分:)

票数 1
EN

Stack Overflow用户

发布于 2013-04-03 00:20:42

您的BULK INSERT语句是什么样子的?您可能需要添加DATAFILETYPE

代码语言:javascript
复制
 BULK INSERT {TableName}
 FROM '{FilePath}'
 WITH (DATAFILETYPE = 'widechar', FORMATFILE = '{FormatFilePath}')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14731339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档