请问大虾们SQL 中 BULK INSERT 和 BCP.exe 是否存在使用不一致的BUG

teli_eurydice 2008-10-10 09:55:45
相同的一条语句使用
BULK INSERT well_daily_output FROM 'C:\2' WITH ( FIELDTERMINATOR = ';,;', ROWTERMINATOR = '\n' )
就可以导入正确
但是使用
EXEC master..xp_cmdshell 'BCP TestData.dbo.well_daily_output in "C:\2" -c -t";,;" -r"\n" -S"xx" -U"sa" -P"sa"'
就失败,总是提示 Error = [Microsoft][ODBC SQL Server Driver]无效的数据格式

但是目前精确是环境仅允许使用 BCP.exe

请问该如何解决
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
东那个升 2008-10-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 teli_eurydice 的回复:]
引用 3 楼 wufeng4552 的回复:
SQL codeEXECmaster..xp_cmdshell'BCP AdventureWorks.sales.currency1 in c:\currency1.txt -c -T'


请问 后面 -T 是什么意思,另外这个语句好像缺不少参数吧,比如 密码什么的
[/Quote]

-T
不需要网络用户的安全凭据、login_id 和 password,就是信任连接!
teli_eurydice 2008-10-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wufeng4552 的回复:]
SQL codeEXECmaster..xp_cmdshell'BCP AdventureWorks.sales.currency1 in c:\currency1.txt -c -T'
[/Quote]

请问 后面 -T 是什么意思,另外这个语句好像缺不少参数吧,比如 密码什么的

teli_eurydice 2008-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Haiwer 的回复:]
注意引号
Try

SQL codeEXECmaster..xp_cmdshell'BCP TestData.dbo.well_daily_output in''C:\2''-c -t'';,;''-r''\n''-S''xx''-U''sa''-P''sa'''
[/Quote]

您是说 " 换成两个 ' 么,我试了下,执行不了,查询分析器直接死掉,估计再等输入参数,呵呵
水族杰纶 2008-10-10
  • 打赏
  • 举报
回复
EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency1 in c:\currency1.txt -c -T' 
昵称被占用了 2008-10-10
  • 打赏
  • 举报
回复
注意引号
Try

EXEC  master..xp_cmdshell  'BCP TestData.dbo.well_daily_output in ''C:\2'' -c -t'';,;'' -r''\n'' -S''xx'' -U''sa'' -P''sa''' 
teli_eurydice 2008-10-10
  • 打赏
  • 举报
回复
如将

BCP TestData.dbo.well_daily_output in "C:\2" -c -t";,;" 引号去掉
改为
EXEC master..xp_cmdshell 'BCP TestData.dbo.well_daily_output in "C:\2" -c -t;,; -r\n -S"xx" -U"sa" -P"sa"'
则会提示
Error = [Microsoft][ODBC SQL Server Driver]在 BCP 数据文件中遇到的意外的 EOF
tianhuo_soft 2008-10-10
  • 打赏
  • 举报
回复
EXEC  master..xp_cmdshell  'BCP TestData.dbo.well_daily_output in C:\2.txt -c -t;,; -T'


不行的话 导出excel
东那个升 2008-10-10
  • 打赏
  • 举报
回复

EXEC master..xp_cmdshell 'BCP TestData.dbo.well_daily_output in C:\2.txt -c -t;,; -T'

要注意对应的数据列数和类型,以及导入的文件类型要写对
teli_eurydice 2008-10-10
  • 打赏
  • 举报
回复
依然不行

22,199

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧