OPENROWSET 将 Excel 工作表中的电话号码转换为十进制格式而不是 varchar

发布于 2024-11-14 10:13:40 字数 609 浏览 2 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风吹过旳痕迹 2024-11-21 10:13:40

我记得驱动程序对数据类型做了一些有趣的技巧。它尝试根据电子表格前八行或九行中的数据估计正确的数据类型。您可能最好将数据从 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文