首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在使用大容量插入时修剪空格?

如何在使用大容量插入时修剪空格?
EN

Stack Overflow用户
提问于 2015-11-26 15:09:21
回答 1查看 4.2K关注 0票数 3

我使用一个大容量插入来导入一个rpt文件,但是我得到了以下错误:

Msg 4866,第16级,状态1,第1行 大容量装载失败。列在第1行第1列的数据文件中太长。请验证字段终止符和行终止符的指定是否正确。 Msg 7399,第16级,状态1,第1行 OLE DB提供程序"BULK“用于链接服务器"(null)”报告了一个错误。提供程序没有提供有关错误的任何信息。 Msg 7330,第16级,状态2,第1行 无法从OLE DB访问接口"BULK“获取链接服务器"(null)”的行。

我认为这是由于文件列之间的空格,有什么方法我可以修剪这些空间吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-26 15:15:46

如果您的文件中只有空格,您的文件格式是固定的,您将需要一个格式文件来加载它。

代码语言:javascript
代码运行次数:0
运行
复制
SELECT *
  FROM  OPENROWSET(BULK  'C:\Users\Admin\Desktop\Extractions\F0005.rpt',
  FORMATFILE='C:\myTestSkipField.fmt'  
   ) AS t1;

我在下面包含了一个示例.fmt文件,使用EmptyField列映射文件中的前几个字段来映射空间。您可以省略这一点,因为看起来您无论如何都必须使用LTRIM(TRIM([column]))来修剪您的字段。

代码语言:javascript
代码运行次数:0
运行
复制
9.0
8
1     SQLCHAR     0     4     ""      1     DRSY        SQL_Latin1_General_CP1_CI_AS
2     SQLCHAR     0     1     ""      2     Empty1      SQL_Latin1_General_CP1_CI_AS
3     SQLCHAR     0     4     ""      3     DRTT        SQL_Latin1_General_CP1_CI_AS
4     SQLCHAR     0     10     ""     4     DRKY        SQL_Latin1_General_CP1_CI_AS
5     SQLCHAR     0     1     ""      5     Empty2      SQL_Latin1_General_CP1_CI_AS  
6     SQLCHAR     0     30     ""     6     DRDL01      SQL_Latin1_General_CP1_CI_AS
7     SQLCHAR     0     1     ""      7     Empty3      SQL_Latin1_General_CP1_CI_AS
8     SQLCHAR     0     1024    "\n"  8     Remainder   SQL_Latin1_General_CP1_CI_AS

在Microsoft 文档中,这是.fmt文件的文件格式:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33941842

复制
相关文章

相似问题

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