将excel表数据导入sqlserver2008R2 报错

错误信息:

正在复制到 [dbo].[Sheet1sss$] (错误)
消息
错误 0xc020901c: 数据流任务 1: 输出“Excel 源输出”(9) 上的 输出列“FDESC”(93) 出错。返回的列状态是:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。
(SQL Server 导入和导出向导)

错误 0xc020902a: 数据流任务 1: “输出列“FDESC”(93)”由于发生截断而失败,而且针对“输出列“FDESC”(93)”的截断行处理设置指定截断时出错。在指定组件的指定对象上出现截断错误。
(SQL Server 导入和导出向导)

错误 0xc0047038: 数据流任务 1: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“源 - Sheet1$”(1) 的 PrimeOutput 方法返回了错误代码 0xC020902A。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
(SQL Server 导入和导出向导)


导入excle表到sqlserver2008R2数据库,报错,可以将excle表转为.csv格式,在将.csv的文件后缀名改为.txt文件,如以下例子:
将   “输出列“FDESC”(93) 出错”  FDESC这列的长度设置为 nvarchar(2000);

USE [Demo]
GO

/****** Object:  Table [dbo].[BBBBB]    Script Date: 06/19/2019 21:19:04 ******/
SET ANSI_NULLS ON
GO
---- 一、创建表结构
SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[BBBBB](
    [ID] [float] NULL,
    [SETITEM_ID] [nvarchar](255) NULL,
    [SETORG_ID] [nvarchar](255) NULL,
    [ORGITEM_ID] [nvarchar](255) NULL,
    [ORGITEM_CODE] [nvarchar](255) NULL,
    [ORGITEM_GBCODE] [nvarchar](255) NULL,
    [ORGITEM_CNAME] [nvarchar](255) NULL,
    [ORGITEM_CNALIAS] [nvarchar](255) NULL,
    [ORGITEM_ENNAME] [nvarchar](255) NULL,
    [ORGITEM_ASSISTCODE] [nvarchar](255) NULL,
    [ORGITEM_PKG] [nvarchar](255) NULL,
    [ORGITEM_TYPE] [nvarchar](255) NULL,
    [DOSAGE_FORM_ID] [nvarchar](255) NULL,
    [DOSAGE_FORM_NAME] [nvarchar](255) NULL,
    [SETCLASS_ID] [nvarchar](255) NULL,
    [SETCLASS_NAME] [nvarchar](255) NULL,
    [SETGRADE] [nvarchar](255) NULL,
    [PAYMENT_RATIO] [nvarchar](255) NULL,
    [IS_LIMITPRICE] [nvarchar](255) NULL,
    [LIMIT_PRICE] [nvarchar](255) NULL,
    [ORGITEM_INFO] [nvarchar](255) NULL,
    [IS_NEED_APPROVAL] [nvarchar](255) NULL,
    [NOTAPPROVALITEM_ID] [nvarchar](255) NULL,
    [OWN_RATIO_NOTAPPROVAL] [nvarchar](255) NULL,
    [ORGITEM_FLAG] [nvarchar](255) NULL,
    [FISAVAILABLE] [nvarchar](255) NULL,
    [FDESC] [nvarchar](2000) NULL,--导入数据库时,系统默认为(255),可在编辑映射将大小设置为2000,或者max
    [FLOGCBY] [nvarchar](255) NULL,
    [FLOGCDATE] [nvarchar](255) NULL,
    [FLOGLUBY] [nvarchar](255) NULL,
    [FLOGLUDATE] [nvarchar](255) NULL,
    [FLOGLABY] [nvarchar](255) NULL,
    [FLOGLADATE] [nvarchar](255) NULL,
    [YDJS_AKC224] [nvarchar](255) NULL,
    [YDJS_AKC229] [nvarchar](255) NULL,
    [YDJS_AKC230] [nvarchar](255) NULL,
    [YDJS_AKC231] [nvarchar](255) NULL,
    [YDJS_YKC615] [nvarchar](255) NULL,
    [SYZFBL] [nvarchar](255) NULL,
    [ETZFBL] [nvarchar](255) NULL,
    [PAYMENT_RATIO_CS] [nvarchar](255) NULL
) ON [PRIMARY]

GO
-- 二、使用以下代码导入csx.txt数据到BBBBB表

BULK INSERT Demo.dbo.BBBBB
FROM ‘D:\csx.txt‘
WITH(
    FIELDTERMINATOR = ‘,‘,
    ROWTERMINATOR = ‘\n‘
)
SELECT * FROM Demo.dbo.BBBBB

运行代码,完成对数据的导入。



原文地址:https://www.cnblogs.com/betobe/p/11055574.html

时间: 2024-10-08 13:03:10

将excel表数据导入sqlserver2008R2 报错的相关文章

Excel表数据导入Sql Server数据库中

Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表

Java版将EXCEL表数据导入到数据库中

1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls")); //获取该工作表中的第一个工作表 Sheet sheet=workBook.getSheet(0); //获取该工作表的行数,以供下面循环使用 int rowSize=sheet.getRows(); for(int i=0;i<rowSize;i++) { //编号 String

Excel表数据导入数据库表中

***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为一张临时表,在插入到正式表中.语句如下: --YK_TYPK插入数据 insert into YK_TYPK --插入'YK_TYPK(通用品库)'数据 select * from Sheet1$_TYPK_caoyao ---------------------------------------

数据库数据导入/导出报错:无法在只读列“Id”中插入数据。

本文仅供小白参考,大佬请随意...... 本例是:从vs 2017自带的localDB数据库的数据---导出到---->Sql Server 2008中的相应数据库中 1. 导出数据库: 2. 导入的目标数据库: 3. 下一步*n---->完成 4. 爽一下后连续报错开始: 上面两个错误的前提是:我的Sql Server中数据库是先手动建立了同名数据库, 然后从localDB相应数据库右键--->任务--->生成脚本--->选择特定数据库对象--->全选所有表---&g

EXCEL表数据导入到ORACLE数据库中

将EXCEL表导入ORACLE数据库中 一.建立表 1.建立表 2.查询表 select * from yy; 二.导入程序 在excel中找到需要导入的数据 2.将excel中的数据另存为文本文件(有制表符分割的) 3.在pl*sql中选择tools-->text importer,在出现的窗口中选择"Data from Textfile",然后再选择"Open data file", 在弹出的文件选择框中选中保存有数据的文本文件,此时将会看到data fr

把Excel表数据导入数据库

导入格式 //导入Excel(导入资产信息) private void button2_Click(object sender, EventArgs e) { OpenFileDialog openfilediaglog = new OpenFileDialog(); openfilediaglog.Filter = "xls文件|*.xls"; if (openfilediaglog.ShowDialog() == DialogResult.OK) { string str = Im

实测:向MySql数据库导入excel表数据

最近要开发一个小的答题系统,如果题目人工录入那确实很麻烦.所以想到是不是可以从用一些现有数据格式的文件导入数据.在网上查了一下,看到有关于将excel的数据导入到mysql的方法.所以将题库数据整理成excel的.  然后另存为.csv格式的文件.  然后在phpmyadmin中选择导入操作. 但是由于插入的数据出现乱码,失败.  查找原因:因为excel默认编码格式为ANSI,而mysql数据库默认的编码方式是utf-8. 解决办法:我是用editplus将.csv格式的文件打开(打开时将“编

把Excel的数据导入到数据库

将Excel作为数据源,将数据导入数据库,是SSIS的一个简单的应用,下图是示例Excel,数据列是code和name 第一部分,Excel中的数据类型是数值类型 1,使用SSDT创建一个package,创建Excel data source component,SSDT会在Connection Managers中创建一个Excel的connection 由于示例Excel的首行是列名,所以需要勾选"First row has column names",Excel connectio

【最后的冲刺】android中excel表的导入和数据处理

[最后的冲刺]android中excel表的导入和数据处理 --学校课程的查询和修改 1.编写 The Class类把课程表courses.db当做一个实体类,hashcode和equals这两个类是为了判断输入的查询内容和Excel表中的内容是否一致. 并在java里面区别两个对象是否一致 1 public class TheClass { 2 private String classname; 3 private String type; 4 private String teacher;