报错详情(关键信息就是:文本被截断)

错误 0xc020901c: 数据流任务 1: 输出“Excel 源输出”(9) 上的 输出列“xxxxx”(78) 出错。返回的列状态是:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。

注:其中,‘xxxxx’代表的是列名,数字‘78’代表的是行序。

报错原因

文本被截断,就是文本太长了,无法保存到数据表中。

那为什么会超过限制呢?

原来,SQLServer 在导入数据时,会根据首行数据,自动识别出数据类型和字段长度,而文本则是默认长度 255。所以,当后续某个文本长度超过 255 时就会报错,导致全部数据导入失败,但是临时表已经创建成功。

如下是自动创建的表的个别字段:

示例测试

测试表格数据示例:(长文本为 256 位字母)

普通文本	长文本	数字	大数字	大数字带小数位	大数字带小数位文本	日期
测试内容 dsfadfasdfasdfasdfadfasdfasdfasdfadffadfasdfasdafasdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1 999999999 10000.99 100000000.99 2024/2/2

自动创建表的结构:

当单元格中的文本长度大于 255 时,则会自动将 varchar 类型的长度生成为 MAX,此时就不会再出现截断报错。

解决方案

(首选)直接在表中首行添加一行,将可能存在超过 255 的列填入大于 255 长度的字符,然后在导入成功后,手动删除即可。

数据量不大的话,也可以再提示导入失败后,通过 sql 语句 alter table tablename01 alter column [columnname] varchar(2000) 来手动修改表结构,然后把数据粘贴进表中。

SQLServer 导入 Excel 表数据报错“文本被截断。。。”的更多相关文章

  1. SQL SERVER 导入EXCEL表 报错 未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    1 已经正确安装了 accessdatabaseengine 2 使用 Microsoft SQL Server Management Studio 里面的数据库 右键-->导入数据 解决方案 ...

  2. oracle导入Excel表文本数据

    首先导Excel表数据要先建和Excel表字段对应的表,然后将Excel表另存为Txt文本, 然后在Plsql客户端点击工具->文本导入器 然后这里要选择用户及其表,点击导入数据就可以

  3. sqlserver 导入excel

    安装完office2013和sqlserver2017时,不知道是盗版问题还是啥 原因, 在sqlserver导入excel时,报错. 在把Excel导入SQL server时出现“未在本地计算机上注 ...

  4. winfrom 导入Excel表到access数据库(来自小抽奖系统)

    网上有很多这种方法,本人只是针对自己的系统来实现的 //导入excel表 private void ImportTSMenu_Click(object sender, EventArgs e) { O ...

  5. 向ACCESS数据库中的表导入EXCEL表,在 System.Data.OleDb.OleDbException 中第一次偶然出现的“System.Data.dll”类型的异常

    向ACCESS数据库中的表导入EXCEL表,EXCEL表Sheet1中与ACCESS数据库表中的关键字对应的列的值,不能与数据库中表的主键项值重复,不然就会出现 在 System.Data.OleDb ...

  6. C# winform 编程 向ACCESS数据库导入EXCEL表使用心得

    public string MyConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ErLake.mdb&quo ...

  7. SQL Server导入Excel文件报错

    目录 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 原因 解决方法 该值违反了该列的完整性约束 空行 没有设置为允许为NULL 我以前也导入过数据,也没报错,今天再次导入数据的时候,发现了两 ...

  8. 向MySql数据库导入excel表数据

    最近要开发一个小的答题系统,如果题目人工录入那确实很麻烦.所以想到是不是可以从用一些现有数据格式的文件导入数据.在网上查了一下,看到有关于将excel的数据导入到mysql的方法.所以将题库数据整理成 ...

  9. SQL Server 2005导入Excel表问题

    EXCEL导入到SQL Server经常出现“文本被截断,或者一个或多个字符在目标代码页中没有匹配项” 原因: SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别. ...

  10. sqlserver导入excel的电话号码(身份证)变为科学计数解决方式

    如果excel中有一列存的是手机号码或者身份证号码,那么导入到sql中时,会把手机或者身份证当作数字格式对待,因而会以科学记数法的形式存在sqlserver表中,解决方式,先将excel文件另存为文本 ...

随机推荐

  1. 微信小程序-常用弹窗

    官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/ui/interaction/wx.showToast.html showToast ...

  2. GO中的GC

    go中的垃圾回收 前言 垃圾回收 go中的垃圾回收方式 三色标记法 根对象 STW 屏障技术 插入屏障 删除屏障 混合写屏障 GO中GC的流程 GC的触发时机 如果内存分配速度超过了标记清除的速度怎么 ...

  3. Go语言的100个错误使用场景(一)|代码和项目组织

    目录 前言 1. Go: Simple to learn but hard to master 1.1 Go 语言概述 1.2 简单不等于容易 1.3 使用 Go 的100个错误 2. Code an ...

  4. 基于罪名法务智能知识图谱(含码源):基于280万罪名预测、20W法务问答与法律资讯问答功能

    基于罪名法务智能知识图谱(含码源):基于280万罪名预测.20W法务问答与法律资讯问答功能 项目功能 目前知识图谱在各个行业中应用逐步打开,尤其在金融,医疗,法律,旅游方面.知识图谱助力法律智能,能够 ...

  5. C++ CryptoPP使用AES加解密

    Crypto++ (CryptoPP) 是一个用于密码学和加密的 C++ 库.它是一个开源项目,提供了大量的密码学算法和功能,包括对称加密.非对称加密.哈希函数.消息认证码 (MAC).数字签名等.C ...

  6. 2024-01-31:用go语言,机器人正在玩一个古老的基于DOS的游戏, 游戏中有N+1座建筑,从0到N编号,从左到右排列, 编号为0的建筑高度为0个单位,编号为i的建筑的高度为H(i)个单位, 起

    2024-01-31:用go语言,机器人正在玩一个古老的基于DOS的游戏, 游戏中有N+1座建筑,从0到N编号,从左到右排列, 编号为0的建筑高度为0个单位,编号为i的建筑的高度为H(i)个单位, 起 ...

  7. uni-app接口请求封装

    首先根目录下新建文件夹取名随意,这里我取名common(意为:常见的.共有的) 然后新建request.js文件,贴入以下代码 let server_url = ''; //请求根路径(服务器地址) ...

  8. SQLWorkbench使用自定义JDBC驱动连接数据库

    一.Windows上使用SQLWorkbench 1. 添加CloudDB的驱动,点击"Manage Driver". Name :  Fandatsys-CDB sample U ...

  9. CF1895

    A 题意:你在数轴原点.有一个宝箱在 \(x\),钥匙在 \(y\).每移动一单位,耗费 \(1\) 时间.你可以到了 \(x\) 然后抱着宝箱走,但是抱着宝箱走的总路程不能超过 \(k\) 单位.如 ...

  10. test-01-java 单元测试框架 junit 入门介绍

    拓展阅读 junit5 系列 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息 ...