【问题标题】:bcp utility outputs an empty filebcp 实用程序输出一个空文件
【发布时间】:2012-12-06 14:11:32
【问题描述】:

我将使用 bcp 实用程序来调试存储过程,因此我想将一些数据导出到文件中。

我对我的 SQL-Server 2005 进行了测试

DECLARE @SQL VARCHAR(8000)
SELECT @SQL = 'BCP "SELECT 1" QUERYOUT "D:\test.txt" -C -T'
EXEC MASTER..XP_CMDSHELL @SQL

我观察到文件“D:\test.txt”已创建,但为空。
我做错了什么?

【问题讨论】:

    标签: sql sql-server debugging sql-server-2005 bcp


    【解决方案1】:

    我运行了等效的命令:

    BCP "SELECT 1" QUERYOUT "c:\junk\test.txt" -C -T
    

    输出似乎是一个空文件,直到我用十六进制编辑器查看它。在十六进制编辑器中我看到了这个:01 00 00 00

    所以它以整数格式保存数值 1。我怀疑您希望第 2 行阅读:

    SELECT @SQL = 'BCP "SELECT '1'" QUERYOUT "D:\test.txt" -C -T'
    

    在这种情况下,您会在记事本中看到 1。在十六进制编辑器中你会得到:01 00 31

    因为 '1' 是长度为 1 的字符串,十六进制值为 31,字符 1 的 ASCII 码。

    编辑:

    您还可以使用 -w 选项告诉 bcp 对所有输出使用 unicode 字符。可能是一个更好的选择,因为您说您将进行调试。

    【讨论】:

    • 谢谢,-w 选项真的很有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    相关资源
    最近更新 更多