【发布时间】:2015-09-03 09:55:35
【问题描述】:
当我在制表符分隔文件(从 UNIX SAP 系统导出)上使用批量插入到 SQL Server 2008 R2 中时,如果 Short_text 字段是像俄语这样的扩展字符,它们会变成象形文字。
我的代码是:
BULK INSERT ProcureDB.dbo.tbl_SAP_PO_Load
FROM \\Path\'Bulk_Insert_test.txt'
WITH
(
FIELDTERMINATOR = '\t'
,FIRSTROW=2
,ROWTERMINATOR = '0x0a')
这是短文本字段的外观:
Short_Text
стаканы одноразовые
чай черный
Dell 22" Touch screen
Dell 3 yr advanced exchange svc
前两行是俄语。如果我使用文本导入向导将其导入 Excel,默认情况下它使用代码页 65001(65001:Unicode (UTF-8) 并且俄语文本在 Excel 表中显示正常
Short_Text (in excel sheet)
стаканы одноразовые
чай черный
Dell 22" Touch screen
Dell 3 yr advanced exchange svc
网络上的一个建议是在批量插入中使用代码页 65001。
因此代码:
BULK INSERT ProcureDB.dbo.tbl_SAP_PO_Load
FROM \\Path\'Bulk_Insert_test.txt'
WITH
(
**CODEPAGE = '65001'**
,FIELDTERMINATOR = '\t'
,FIRSTROW=2
,ROWTERMINATOR = '0x0a')
但是这会产生错误:
消息 2775,第 16 级,状态 13,第 3 行
服务器不支持代码页 65001。
如何获得服务器支持的代码页 65001?
另一个建议是使用 CODEPAGE = 'ACP'。这是可行的,但是,俄语字符已损坏,但方式不同。
Short_Text
Ñтаканы одноразовые
чай черный
Dell 22" Touch screen
Dell 3 yr advanced exchange svc
版本信息。如下:
- Microsoft SQL Server 标准版(64 位)10.50.6000.34
- Microsoft Windows NT 6.1 (7601) NT x64
- 英语(美国)
- SQL_Latin1_General_CP1_CI_AS
【问题讨论】:
标签: database excel sql-server-2008 import