Linux中sqlcmd输出损坏

时间:2019-03-12 04:29:55

标签: sql-server sqlcmd invoke-sqlcmd

我有一个查询,该查询调用存储过程并将该过程的输出写入文件。查询本身很简单

Exec usp_ScriptIndexes

usp_ScriptIndexes是sql服务器中的存储过程,它使用PRINT命令将所有索引创建脚本打印到输出流。它仅包含ASCII字符,非常简单。我使用

执行sqlcmd
sqlcmd -S <hostname> -U sa -P <password> -d <dbname> -b -I -i <scriptname> -o outputfile.txt

这里的问题是早先在Windows主机中的cygwin中使用的,并且一切都按预期工作。我在Amazon Linux机器中安装了sqlcmd客户端。在Linux中执行同一命令时,输出将损坏。这是使用的sqlcmd的版本

Version 17.3.0000.1 Linux

这是输出的样子

    -- Create indexes for dbo.test_cancelrefund
----------------------------------------
If IndexProperty(Object_Id('dbo.[test_cancelrefund]'), 'test_cancelrefund_PK', 'IsClustered') Is Null ^M  Alter Table mktg.[dbo].test_cancelrefund^M   A
DD CONSTRAINT test_cancelrefund_PK PRIMARY KEY  CLUSTERED ([ID])^M WITH (DATA_COMPRESSION = NONE) ^M  ON [CC_OP]^M
rsequȱ^@
If IndexProperty(Object_Id('dbo.[test_cancelrefund]'), 'cancelrefu_U_PublicID_rzxdxekghbrt', 'IsClustered') Is Null ^M  CREATE UNIQUE  NONCLUSTERED
INDEX cancelrefu_U_PublicID_rzxdxekghbrt ON dbo.[test_cancelrefund] ([PublicID], [Retired])^M WITH (DATA_COMPRESSION = NONE) ^M  ON [CC_INDEX]

rsequȱ^ @一词使文件损坏。

0 个答案:

没有答案