首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法打开BCP主机数据文件

无法打开BCP主机数据文件
EN

Stack Overflow用户
提问于 2013-09-04 16:21:25
回答 13查看 100K关注 0票数 22

下面是BCP语句的一个示例。我不习惯使用BCP,所以非常感谢您的帮助和坦率

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

如果我从CMD提示符执行,它可以正常工作,但是从SQL中我得到了错误。BCP语句都在一行上,Server代理作为本地系统运行。SQL服务器和脚本位于同一个系统上。

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

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

代码语言:javascript
复制
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。

代码语言:javascript
复制
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

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2013-09-04 17:16:42

首先,通过执行一个简单的'dir c:*.*‘来排除xp_cmdshell问题;

查看使用BCP导出文件的我的博客

我的系统出现了问题,无法找到通往BCP.EXE的路径。

或者更改硬代码的路径变量。

下面的示例适用于Adventure。

代码语言:javascript
复制
-- BCP - Export query, pipe delimited format, trusted security, character format
DECLARE @bcp_cmd4 VARCHAR(1000);
DECLARE @exe_path4 VARCHAR(200) = 
    ' cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn\ & ';
SET @bcp_cmd4 =  @exe_path4 + 
    ' BCP.EXE "SELECT FirstName, LastName FROM AdventureWorks2008R2.Sales.vSalesPerson" queryout ' +
    ' "C:\TEST\PEOPLE.TXT" -T -c -q -t0x7c -r\n';
PRINT @bcp_cmd4;
EXEC master..xp_cmdshell @bcp_cmd4;
GO

在将路径更改为\110\ for Server 2012并将数据库名称更改为AdventureWorks2012之前,我收到以下错误。

在进行更改后,代码可以从SSMS中正常工作。该服务在NT权限\本地服务下运行。禁用Server代理。创建了输出文件。

票数 6
EN

Stack Overflow用户

发布于 2014-03-20 08:31:17

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

在您的BCP呼叫之前,请尝试以下操作:

代码语言:javascript
复制
EXEC xp_cmdshell 'MKDIR "E:\Storage\Export\Data\"'
票数 17
EN

Stack Overflow用户

发布于 2014-02-06 08:03:27

请检查,该文件可能在另一个应用程序或程序中打开。如果是这样的话,bcp.exe不能覆盖现有的文件内容。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18619061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档