sql - 无法打开 BCP 主机数据文件

标签 sql sql-server bcp

下面是 BCP 语句的示例。 我不习惯使用 BCP,因此非常感谢您的帮助和坦诚

我也将它与格式文件一起使用。

如果我从 CMD 提示符执行,它工作正常,但从 SQL 执行,我收到错误。 BCP 语句全部位于一行,并且 SQL Server 代理作为本地系统运行。 SQL 服务器和脚本位于同一系统上。

我运行了 exec master..xp_fixeddrives C,45589 E,423686

我尝试输出到 C 和 E,结果相同

EXEC xp_cmdshell 'bcp "Select FILENAME, POLICYNUMBER, INSURED_DRAWER_100, POLICY_INFORMATION, DOCUMENTTYPE, DOCUMENTDATE, POLICYYEAR FROM data.dbo.max" queryout "E:\Storage\Export\Data\max.idx" -fmax-c.fmt -SSERVERNAME -T

这是格式文件rmax-c.fmt

10.0

7

1      SQLCHAR             0       255     "$#Y#$"          1     FILENAME                               
2      SQLCHAR             0       40      ""               2     POLICYNUMBER                                 
3      SQLCHAR             0       40      ""               3     INSURED_DRAWER_100                           
4      SQLCHAR             0       40      ""               4     POLICY_INFORMATION                           
5      SQLCHAR             0       40      ""               5     DOCUMENTTYPE                                 
6      SQLCHAR             0       40      ""               6     DOCUMENTDATE                                 
7      SQLCHAR             0       8       "\r\n"           7     POLICYYEAR    

由于本文中的格式化,格式文件的最后一列被截断,但除文档日期之外的每一列都会读取 SQL_Latin1_General_CP1_CI_AS

最佳答案

输出路径是否存在? BCP 在尝试创建文件之前不会创建文件夹。

在 BCP 调用之前尝试此操作:

EXEC xp_cmdshell 'MKDIR "E:\Storage\Export\Data\"'

关于sql - 无法打开 BCP 主机数据文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18619061/

相关文章:

php - 如何在 Yii2 中使用 leftJoin 从两个表中获取所有列数据

sql-server - SQL Server 闩锁及其对性能问题的指示

sql-server - SSIS将动态结果集变量写入MSSQL表

.net - 在 .NET 中覆盖 SSIS 配置连接字符串

sql - SQL Server中的BCP导致错误

sql-server - BCP 到 .csv 分隔符问题

mysql - 如何统计MySQL中的项目数?

sql - MySQL "in clause"内的项目数

sql - 基于单列返回唯一行

c# - SQL Server BCP 实用程序最好使用的分隔符