VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 910|回复: 4

SQL SERVER应用BCP导出数据时出现的问题

[复制链接]

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-17 09:30:01 | 显示全部楼层 |阅读模式
以BCP工具导出执行存储过程中所得的结果
错误信息:
SQLState=37000,NativeError =156
Error =[Microsoft][ODBC SQL Server Driver][SQL Server]在关键字'where'附近有语法错误。

情况描述:
以上错误只在客户的机子上出现,在我本人的机子已经同事的机子上甚至在我家的机子上都没有出现。

出现错误的BCP语句:bcp "exec vms.dbo.车辆经营_proc"  queryout  "e:\una\1\driverrecover.xml" -w -T

所用到的视图语句:
CREATE VIEW dbo.昨日行驶记录_v AS
SELECT DISTINCT
      日期, 流水号, 路线名称, 车牌号码,司机流水号, 乘务员流水号, 出发时间, 到达时间, 创建者,
      创建时间, 修改者, 修改时间
FROM dbo.车辆行驶记录
WHERE (SUBSTRING(CONVERT(char, 日期, 100), 7, 4) = YEAR(DATEADD([day], - 1,
      GETDATE()))) AND (SUBSTRING(CONVERT(char, 日期, 100), 1, 2)
      = MONTH(DATEADD([day], - 1, GETDATE()))) AND (SUBSTRING(CONVERT(char, 日期,
      100), 4, 2) = DAY(DATEADD([day], - 1, GETDATE())))

所用到的存储过程语句:
create proc 车辆经营_proc as select 1 as tag,
       null as parent,
       null as [root!1!!element],
       null as [steerrecover!2!number],
       null as [steerrecover!2!date],
       null as [steerrecover!2!line],
       null as [steerrecover!2!busnumber],
       null as [steerrecover!2!drivernumber],
       null as [steerrecover!2!stewardnumber],
       null as [steerrecover!2!leavetime],
       null as [steerrecover!2!arrivetime],
       null as [steerrecover!2!creator],
       null as [steerrecover!2!createtime],
       null as [steerrecover!2!mendir],
       null as [steerrecover!2!fixtime],
       null as [ticket!3!ticketnumber],
       null as [ticket!3!leavestation],
       null as [ticket!3!arrivestation],
       null as [ticket!3!price],
       null as [ticket!3!amount]
from
vms.dbo.昨日行驶记录_v a
union
select  2,
        1,
        null,
        a.流水号,
        a.日期,
        a.路线名称,
        a.车牌号码,
        a.司机流水号,
        a.乘务员流水号,
        a.出发时间,
        a.到达时间,
        a.创建者,
        a.创建时间,
        a.修改者,
        a.修改时间,
        null,
        null,
        null,
        null,
        null
from
vms.dbo.昨日行驶记录_v a
union
select  3,
        2,
        null,
        a.流水号,
        a.日期,
        a.路线名称,
        a.车牌号码,
        a.司机流水号,
        a.乘务员流水号,
        a.出发时间,
        a.到达时间,
        a.创建者,
        a.创建时间,
        a.修改者,
        a.修改时间,
        b.流水号,
        b.出发站点,
        b.到达站点,
        b.价格,
        b.票数
from
vms.dbo.昨日行驶记录_v a left join vms.dbo.售票记录 b on a.流水号=b.行驶记录流水号
order by  [steerrecover!2!number],[ticket!3!ticketnumber]

for xml explicit



求助于各位大大们了!!!

回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-7-11 20:45:01 | 显示全部楼层
查询分析器中直接执行有错吗?
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-22 18:00:02 | 显示全部楼层
执行BCP时出的错。无论是在查询分析器或是DOS下
回复

使用道具 举报

0

主题

30

帖子

25.00

积分

新手上路

Rank: 1

积分
25.00
发表于 2020-7-24 13:15:01 | 显示全部楼层
既然在关键字'where'附近有语法错误
去掉试试看
WHERE (SUBSTRING(CONVERT(char, 日期, 100), 7, 4) = YEAR(DATEADD([day], - 1,
      GETDATE()))) AND (SUBSTRING(CONVERT(char, 日期, 100), 1, 2)
      = MONTH(DATEADD([day], - 1, GETDATE()))) AND (SUBSTRING(CONVERT(char, 日期,
      100), 4, 2) = DAY(DATEADD([day], - 1, GETDATE())))
回复

使用道具 举报

1

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-7-28 11:30:01 | 显示全部楼层
谢谢,我看看有没有机会去试一试.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表