最近帮朋友把他整理的excel数据导入到Sql Server中,失败,报错如下:作为源列4(“产品说明”)的数据对于所指定的缓冲区来讲太大。
我的excel文件中有一列叫“产品说明”,就是一些文字。Sql server处理导excel数据流程是这样的,它会先创建目标表,再把excel数据写入缓冲区,然后再把缓冲区数据写入目标表。问题就在创建目标表和写入缓冲区,sql server会根据现在的excel中的数据格式来写入缓冲区和创建目标表。比如excel中有一列为编号,里面是数字,sqlserver就会在目标表里建一列叫“编号”,为float类型.
而对于我的excel文件中的"产品说明"这一列,是文字,那sql server如何建立目标列或缓冲区呢?它怎么知道该把目标建立成varchar还是text呢?经过测试,发现sql server是这样做的,他会取excel文件中的前8行(2的三次方),然后算这8行里“产品说明”的最大长度,如果这8行里最长的 > 255,则目标列和缓冲区就会建立成ntext类型,否则就建立成nvarchar类型。这样,问题就来了!假设我的excel文件前8行“产品说明”中都 < 255,则目标和缓冲区就被建立为varchar(255)类型了(这里说明一下,你可以修改目标表的字段类型,但缓冲区长度或类型是无法修改的)。而如果我的第10行里“产品说明”的长度超过了255,则sql server往缓冲区里写的时候,自然就发生了如上的错误:数据对于指定的缓冲区来讲太大。
这样,我们导数据当然就失败了!这个也许不能算bug,因为只是实现得不好(取某列前8行的最大长度并不能真正代表所有行,我想microsoft的工程师为了简单或者提高性能才这样做的);也许算是bug,因为不知情的用户导数据失败了。而且不知道为何而失败的!
公理自在人心,让大家或那些工程师们去评判吧!
分享到:
相关推荐
可以直接把excel/csv文件导入oracle或sql server数据库中 可对导入的excel内容进行筛选后再导入 可选择需要导入表的栏位 可批量导入文件夹的所有excel文件或者一个excel文件中的所有sheet 也可以导入一个文件内单个...
然而,当数据量达到一定规模时,Excel可能就无法满足高效管理和处理的需求,这时我们就需要将数据导入到更强大的数据库系统中,比如SQL Server。本文将详细探讨如何将Excel数据批量导入到SQL Server数据库,并提供...
例如,可能需要将一个Excel工作簿的数据导入到Oracle数据库,或者从SQL Server数据库导出数据到CSV文件以便进一步分析。 总结而言,DataCvrt是Delphi开发的一款多平台数据转换工具,具备转换Oracle、SQL Server、...
《SQL数据库导入向导(最终版)》是针对SQL Server 2000数据库系统设计的一款实用工具,它主要用于帮助用户高效、便捷地完成数据的导入操作。此工具的开发环境为Visual Studio 2003,这是一款由微软推出的强大开发平台...
终于在一个"寂寞难耐"的周末,完成了一个Excel导入数据库(支持Sql Server 2000,2005; Access,Oracle未测试)的共通程序(可配置和验证).闲暇时间测试了一下,功能和效率(1000条3-4秒)方面还不错. 此DLL在做导入程序至少...
开发者通过读取Excel文件,解析其中的数据,然后通过数据访问层将这些信息插入到数据库中。此功能对大量成绩录入的场景尤为实用,极大地提高了工作效率。 4. **C#编程技术** 在C#编程中,ADO.NET库是与数据库交互...
支持sql server导入导出、存储、过程调用 V2.0,2012年2月15日 主要变化:新增ACCESS2007支持,重写大部分代码,重命名为DataPie V2.01,2012年3月1日 新增数据库服务的开启与关闭 V2.04,2012年3月12日 新增...
- **编辑EXCEL数据**:准备要导入的数据。 - **TD导入映射设置**:定义数据字段与TD字段之间的映射关系。 #### 11. TD数据迁移 - **移植前的备份工作**:备份重要数据以防万一。 - **数据库迁移**:通过数据库复制...
9. **导出和导入数据**:可以将查询结果导出为各种格式(如CSV、Excel),或将数据从一个数据库导入到另一个数据库。 10. **历史记录保存**:保存用户的查询历史,便于日后参考或复用。 修正分离版可能意味着这个...
此外,它还支持数据导入和导出,可以将数据从各种格式(如CSV、Excel、XML等)导入到SQL Server,或者将数据库中的数据导出到其他格式。 3. **查询构建与执行**: 用户可以利用内置的查询构建器来创建复杂的SQL...
软件支持如ORACLE,MYSQL,SQLSERVER,POSTGRE,DB2,sybase等目前几乎所有的数据库,支持数据库与csv文件,excle同步以及定时支持大数据导入导出,数据差分,并把处理结果打zip包加密发送mail,是用户实现数据库...
3. 导入兼容性:支持多种数据格式,如CSV、Excel、XML、JSON等,同时可能兼容各种数据库系统,如MySQL、SQL Server、Oracle等。 4. 自动修复:通过智能算法,对可修复的数据错误进行自动修复,无需用户手动操作,极...
16.4.2 用SQL Server 2005 Analysis Services的数据创建指标 361 16.5 手动实现KPI 363 16.6 小结 364 第17章 实现业务数据目录 365 17.1 确定业务数据 365 17.1.1 确定数据源 365 17.1.2 确定场景和目标 366 17.2 ...
ADODB是微软提供的一种数据库访问接口,它可以在多种数据库系统上工作,如Microsoft SQL Server、Access、Excel等。通过ADODB,开发者可以使用统一的API来访问不同的数据库,实现跨平台的数据操作。这个易语言模块将...
这个工具可能支持多种数据库系统,如MySQL、Oracle、SQL Server等,帮助用户在不同的数据库平台之间进行数据迁移,确保数据的一致性和完整性。版本号“ver 20130930”表明这是2013年9月30日发布的一个特定版本,可能...
5. **数据导入导出**:工具支持从多种文件格式(如CSV、Excel)导入数据,也可以将数据导出为多种格式,方便数据交换。 6. **备份和计划**:Navicat提供了备份功能,可以创建备份计划,确保数据安全。 7. **数据...
支持excel数据导入数据库。 支持单个文本自定义格式(如mdx源文件格式)导入数据库。 支持从数据库直接导出数据为mdx源文件,即可用MdxBuilder直接转换为MDX词典。 导入导出进度条显示。 下载编辑 支持可视化编辑。...
D,数据表数据和Excel文件之间的双向导入导出操作。 E,提供特定的数据文件格式,用于不同数据库之间的数据导入,导出。 <br>6,SQL脚本预输出 数据库模型或实体数据库有所改动时,可预输出更新SQL...
1. SQLServer:由微软公司开发的关系型数据库管理系统,广泛应用于企业级应用,提供高可用性和数据安全性。 2. MySQL:一种开源、免费的数据库,因其高效、稳定和易于管理的特点,被大量网站和应用程序采用。 3. ...