SQLSERVER安装默认关闭xp_cmdshell,需要手工开启,google的办法
-- 允许配置高级选项
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO
A。对于小的文件,将|替换为制表符,用下面语句导入成功
EXEC master..xp_cmdshell 'BCP ZHAD.dbo.adAnaly_new in D:\adAnaly_new.dat -F 2 -c -t"|" -f D:\adAnaly_new.fmt -T'
参数说明:
-F 2 从第2行开始导入(标题行)
-c 以字符格式导入
-t 字段间隔符,在上面的语句中没有用
-f formart文件
-T 使用可靠链接,不需设用户名密码
B。对于大文件,使用editplus替换间隔提示内存不足
解决办法:1.虽然系统内存足够,但editplus不用,无法 2. 修改参数,测试SQL
以下脚本成功导入
EXEC master..xp_cmdshell 'BCP ZHAD.dbo.adAnaly1_new2 in D:\adAnaly1_new.dat -F 2 -c -t"|" -k -T'
总结:
1. -c很重要
2. 字符参数值是双引号,不是两个单引号
3. 对于建好的表,格式文件没什么用,有格式文件反倒出错
4. 导入数据前需要先建好表,以便数据对号入座