解决EXCEL导入 SQL 2000过程,列中存在不同格式的问题

真的比较郁闷!把数据从EXCEL导入到SQL 2000的时候发现了类型转换不了的问题。

[@more@]

如EXCEL文件中有一“工号”列,工号中有些数据格式是文本类型、有的是字符类型。当使用:

SELECT B.[工号],*
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=C:612.xls',SG$) AS B

语句来查看的时候,发现有些非文本类型的工号显示为NULL.开始还以为可以使用CAST来转换数据类型,但使用了CAST 还是一样。

SELECT CAST(B.[工号] AS nvarchar(20)),*
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=C:612.xls',SG$) AS B

到网上Search了一下,找不到一个好的解决方法。

要是每次都要去修改Excel文件的单元格格式,就比较的郁闷。因为客户不是象我们这样的专业去改格式。

后来找一个可以解决的方法就是,使用到IMEX=1这一参数。

SELECT 工号,*
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;IMEX=1;DATABASE=C:612.xls',SG$) AS B

备注:

HDR=YES 有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名

IMEX=1 解决数字与字符混合时,识别不正常的情况.

解决方法来源http://www.sql-club.com/Sunwei/archive/2006/04/26/536.aspx?Pending=true

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7764484/viewspace-904116/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7764484/viewspace-904116/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值