excel数据导入SQL SERVER 2000 时间列报错 导入失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel数据导入SQL SERVER 2000 时间列报错 导入失败相关的知识,希望对你有一定的参考价值。

在excel 2003 表的数据导入SQL Server 2000时,报错,导入失败;报的错为:
在目的的行号为1处出错。到目前为止,在该任务中遇到错误数:1。插入错误、列35(“创建时间”,DBTYPE_DBTIMESTAMP)、状态6:数据溢出。对于造型说明无效的字符值。
创建时间列的数据在excel中的格式为时间:HH:MM:SS
解决过这种情况的帮忙解释下。谢谢。
导入的时候失败了。表名创建才成功了。但是数据导入失败。excel导入SQL Server 的时候数据类型是自动创建的吧
35列我看了下,也是正确的类型的。是时间格式HH:MM:SS

嗯。分就给你吧,别浪费了。

在SqlServer里边把表的日期字段改成datetime类型的
你导入错误后,在SqlServer中应该有个表,你把表的数据清空,然后把日期字段类型改成datetime类型的,然后倒入的时候选择刚才修改过的这个表,这样试试吧,祝你好远
参考技术A 你看下EXCEL 列35的数据是否是一个正确的时间类型

将数据从 Excel 导入 SQL Server 2008

【中文标题】将数据从 Excel 导入 SQL Server 2008【英文标题】:Import data from Excel to SQL Server 2008 【发布时间】:2013-11-07 14:26:24 【问题描述】:

我正在对使用 VB.Net 的网站进行重新设计。系统会从第三方上传的 Excel 97-2003 文件中获取相当多的数据,然后上传到 SQL 2008。问题来了,上传的文件扩展名为 .P。我已经使用下面的代码来尝试抓取数据并上传到数据库。

Dim xlApp As New Excel.Application
    xlApp.Workbooks.Open(Filename:=Server.MapPath("~/ExtractFiles/10-31-13.P"))
    xlApp.ActiveWorkbook.SaveAs(Filename:=Server.MapPath("~/ExtractFiles/10-31-13.xls"), FileFormat:=51)
    If Not xlApp Is Nothing Then
        xlApp.ActiveWorkbook.Close()
        xlApp.Quit()
        xlApp = Nothing
    End If

    PrmPathExcelFile = Server.MapPath("~/ExtractFiles/10-31-13.P")

    plmExcelCon = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PrmPathExcelFile + ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1""")
    cmdLoadExcel = New System.Data.OleDb.OleDbDataAdapter("select * from [10-31-13]", plmExcelCon)

    Dim dt As System.Data.DataTable
    dt = New System.Data.DataTable
    cmdLoadExcel.Fill(dt)
    plmExcelCon.Close()

当代码到达 cmdLoadExcel.Fill(dt) 行时,我只收到一条错误消息,提示“外部表不是预期的格式。”。我假设这与我试图更改文件扩展名的事实有关。但是,我似乎无法打开扩展名为 .P 的文件。

这里有我忽略的方法吗?还是在使用具有自定义扩展名的文件时这是不可能的。

【问题讨论】:

更改扩展名似乎实际上是问题:***.com/questions/1139390/…您必须确保Excel版本匹配(查询和文件引用相同的版本)。 感谢您的提示!我发现了问题并添加了正确的代码。一旦“8 小时”规则清除,我会提出答案。 不客气。我期待着阅读解决方案。 【参考方案1】:

好的,感谢 varocarbas 的提示,我找到了答案。为了将来参考,请根据 Excel 文件类型仔细检查 OledbConnection。在我进行以下更改后,它起作用了:

plmExcelCon = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + PrmPathExcelFile + ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1""")
cmdLoadExcel = New System.Data.OleDb.OleDbDataAdapter("select * from [10-31-13$]", plmExcelCon)

首先,要使用我的 Excel 版本,我需要使用 ACE.OLEDB.12.0 和 Excel 8.0。其次,我必须在表格选择的末尾添加一个简单的“$”,否则它将无法找到正确的工作表。

【讨论】:

以上是关于excel数据导入SQL SERVER 2000 时间列报错 导入失败的主要内容,如果未能解决你的问题,请参考以下文章

如何将 xlsx 文件导入 Sql server 2000

在 sql server 2000 中导入 Excel 电子表格

在sql server2000中如何导出数据

将DBF数据表导入到sql server2000中的问题

如何将 Excel 电子表格导入 SQL Server?

SQL Server:从 Excel 导入,只需要新条目