【问题标题】:bcp dynamic query not accepting more than 4000 charactersbcp 动态查询不接受超过 4000 个字符
【发布时间】:2018-02-16 09:15:01
【问题描述】:

生成 XML 时,我使用 XP-CMDSHELL 和 BCP。我的查询字符长度超过 4000 个字符。 Bcp 只考虑 4000 个字符。 请建议方法。 注意:查询不会在 sp 或 view 中转换

【问题讨论】:

  • 能否添加您的BCP 脚本
  • 如果你需要运行bcp,你为什么要使用xp_cmdshell?只需从命令行或 SQL Server 代理作业执行bcp。此外,什么样的查询需要 4000 个字符?这不再是批量复制,而是数据生成和导出。您可能应该使用该查询创建一个视图或存储过程。更好的是,使用 SSIS 而不是 bcp 以您喜欢的任何格式导出数据。 BCP 意在做顾名思义 - 批量复制。它的格式有限,不支持处理
  • 然后做一些不会产生超过 4K 的查询的事情。很难提出什么建议,因为您对您正在尝试做的事情的细节很了解,但几乎可以肯定有更好的方法。
  • 你必须展示更多你当前的方法......一个建议可能是将中间结果存储在临时表中以缩短 BCP 查询的代码。
  • 当前的 sql 查询有太多的 xml 标签,这就是为什么我的查询是 6000 个字符长。查询不会减少,因为它有太多的验证。

标签: sql-server bcp xp-cmdshell


【解决方案1】:

你说“我的查询有 6000 个字符”

xp_cmdshell 最多使用 varchar(8000) 或 nvarchar(4000),因此命令长度已经受到限制。

如果您需要 nvarchar,那么您别无选择,只能重构。

如果可以使用 varchar,那么您至少可以通过 xp_cmdshell 传递整个字符串。 bcp是否接受这个,那是另外一个问题,,,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    相关资源
    最近更新 更多