OPENROWSET 将 Excel 工作表中的电话号码转换为十进制格式而不是 varchar
Excel 工作表中的字段之一是电话号码,当我使用 openrowset 批量导入并将其插入 varchar(50) 字段时,它会转换为十进制格式。
这就是我正在做的事情:
CREATE TABLE dbo.TmpDataFileCC
(
field_1 VARCHAR(500) NULL
,Field_2 VARCHAR(500) NULL
,Phone1 VARCHAR(500) NULL
)
Insert into TmpDataFileCC(field_1,Field_2,Phone1)
SELECT F1,F2,F3 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=J:\UploadToSQL\test_file.xls;HDR=NO', 'SELECT * FROM [sheet1$]')
where F3 is not null
电话号码 3234406751 (在 excel 文件中)转换为 3.23441e+009 (在 TmpDataFileCC_ftb 中)
我尝试了一些 Cast 和转换功能,但似乎没有任何效果。 有人可以告诉我我能做什么来解决这个问题吗?
One of my field in excel sheet is a phone number and when I bulk import using openrowset and insert it in varchar(50) field it gets converted into decimal format.
This is what I am doing:
CREATE TABLE dbo.TmpDataFileCC
(
field_1 VARCHAR(500) NULL
,Field_2 VARCHAR(500) NULL
,Phone1 VARCHAR(500) NULL
)
Insert into TmpDataFileCC(field_1,Field_2,Phone1)
SELECT F1,F2,F3 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=J:\UploadToSQL\test_file.xls;HDR=NO', 'SELECT * FROM [sheet1$]')
where F3 is not null
Phone number 3234406751 (in excel file) gets converted into 3.23441e+009 (in TmpDataFileCC_ftb)
I have tried some Cast and convert function but nothing seems to work.
Can someone please tell me what can I do to solve it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我记得驱动程序对数据类型做了一些有趣的技巧。它尝试根据电子表格前八行或九行中的数据估计正确的数据类型。您可能最好将数据从 Excel 导出到 CSV 文件,并使用 bcp 甚至 openrowset 加载它,但使用 csv 驱动程序。
啊,是的:看看这篇文章
http://support.microsoft.com/kb/321686
导致此链接:
http://support.microsoft.com/kb/194124/EN-US
问候
Piotr
The driver from what I remember does some funny tricks with the data types. It tries to estimate correct data type from data in first eight or nine rows of the spreadsheet.. You probably would be better off to export data from excel to CSV file and load it with bcp or even openrowset, but using csv driver.
Ah yes: have a look at this article
http://support.microsoft.com/kb/321686
which leads to this link:
http://support.microsoft.com/kb/194124/EN-US
Regards
Piotr