Hello Everyone Iam尝试将数据从.dat文件(从sybase卸载)批量插入到我创建的表中。
这是表定义:
CREATE TABLE dbo."GCK_KioskSetupOptions" (
"SMTPIPAddress" varchar(128) NULL
,"SMTPPort" varchar(20) NULL
,"POP3IPAddress" varchar(128) NULL
,"POP3Port" varchar(20) NULL
,"AutoLogOffDelay" integer NULL
,"AllowUserToPrint" bit NOT NULL
,"AllowAttachment" bit NOT NULL
,"MaxMessageSize" integer NULL
,"BillingCodeOptionID" integer NOT NULL
,"MaxMessage" integer NULL
,"AllowUserToImport" bit NOT NULL
,"ProtectUserWithPassword" varchar(50) NULL
,"DefaultEncoding" varchar(50) NULL
,"EnableMessageLimit" bit NULL
,"GlobalMessageLimit" integer NULL DEFAULT 30
,"AllowSetMessagePriority" bit NOT NULL DEFAULT 0
)
go
.dat文件中只有一行(因为数据库为空)需要插入上面提到的表中
这是.dat文件数据格式
'127.0.0.1', '25', '127.0.0.1', '110',10,1,1,400,2,250,1,
这是Bulk Inset命令
BULK
INSERT GCK_KioskSetupOptions
FROM 'C:\Program Files\Globe Wireless\WebMail\Database\Defaults\Data\404.dat'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
在SQLServer Management Studio中运行此命令以获取这些错误 Msg 4832,Level 16,State 1,Line 2 批量加载:数据文件中遇到意外的文件结尾。 Msg 7399,Level 16,State 1,Line 2 链接服务器“(null)”的OLE DB提供程序“BULK”报告错误。提供商未提供有关错误的任何信息。 Msg 7330,Level 16,State 2,Line 2 无法从OLE DB提供程序“BULK”获取链接服务器“(null)”的行。
有没有人可以帮我解决这个问题?我实际上正在从Sybase SQL Anywhere 11到SQL Server 2008 R2 express进行数据迁移,这是我在尝试将数据从.dat文件导入SQL Server时遇到的第一个问题2008 r2 EXPRESS表。
三江源
答案 0 :(得分:0)
根据事物的样子,样本数据文件中有ll个字段,但表中有16列。
我认为您需要使用默认值填充输入。
而不仅仅是
'127.0.0.1', '25', '127.0.0.1', '110',10,1,1,400,2,250,1,
你需要
'127.0.0.1', '25', '127.0.0.1', '110',10,1,1,400,2,250,1 ,,,,,