sql-server - BCP:导出时无法使用本机格式
问题描述
这就是我使用 BCP 的方式:
-- 在本机内容中生成格式文件 (-n)
bcp Sales.dbo.Num format nul -n -f D:\Format.fmt -T -S .\sqlexpress
-- 使用上述格式文件导出表格
bcp Sales.dbo.Num out D:\FactNum.csv -f D:\Format.fmt -T -S .\sqlexpress
但无论我做什么,输出 .csv 总是乱码。
附言
如果格式文件的 char 版本(使用 -c 参数),它运行良好
我尝试过格式文件的 xml 本机版本,但没有帮助
浏览了 MSDN 上的这个和基本 BCP 文档
请建议
解决方案
正如您所说,“胡言乱语”是您使用本机(-n)数据时得到的。数据以 SQL Server 的本机格式写入文件,而不是 ascii 文本。我相信你想看ASCII文本?如果是这样,这就是字符 (-c) 选项的用途。
在这方面,使用格式文件与文件的“格式”无关。
有数据的格式(由 -c、-n 和其他选项设置),然后是列的格式……如果您选择,则由格式文件定义。
您正在以本机格式导出数据,但您希望它看起来像不是 SQL 本机格式的数据。SQL 原生格式不是供人类使用的……它是由 SQL Server 读取的。
推荐阅读
- autodesk-forge - 数据管理 API 存储桶使用成本/限制
- java - java.lang.UnsupportedClassVersionError-aparajita
- javascript - 参加考试的最大学生人数 Javascript
- sql-server - 如何将用户角色更新为我拥有 3 次具有不同用户角色的用户
- python - 如何在 groupby 的多个列上使用应用函数?
- python - Python中的多元K均值聚类?
- php - 使用 sanctum 在 Laravel API 中进行身份验证
- flutter - 是否可以在系统托盘中接收仅数据通知?
- elasticsearch - 聚合多个递归logstash
- sql - 重复orderid时如何删除记录