【发布时间】:2020-03-04 22:53:27
【问题描述】:
我正在从 powershell 命令运行以下查询,不幸的是,该命令会在结果字符串的末尾截断或添加点。我已经调整了powershell的屏幕缓冲区大小,即右键单击powershell属性>布局>屏幕缓冲区大小>宽度和高度设置为9999(最大值)。似乎输出仅限于 powershell 屏幕缓冲区大小,我似乎无法解决这个问题。请提供任何帮助。
Invoke-Sqlcmd -ServerInstance myrds.com -Database mydb -Username dbuser -Password passord -maxcharlength 80000 -Query "SELECT CAST(BINARYCOL AS VARCHAR(MAX)) FROM OLTP_TABLE WHERE ID=123123 AND COMPANYID=123" | Out-File -FilePath "C:\Users\USER\Documents\ps_scripts\res3.txt"
【问题讨论】:
-
如果你想将查询结果输出到文件中,为什么不使用
bcp呢?这旨在将命令的输出保存到文件中。 -
假设
select datalength(binarycol) from oltp_table where id=123123 and companyid=123返回的数字大于9999是否安全? -
@AlwaysLearning - 是的,二进制列总是 > 9999,这就是我似乎被固定的地方。
-
@Larnu - 啊,没想到,现在就试试,谢谢。
-
如果这确实是由于屏幕大小而截断的情况,那么您可以将数据通过管道传输到
Format-List。但是,如果您要输出属性中的项目集合,则默认 shell 在使用...截断之前限制为 4 个项目。要解决此问题,您需要更改$formatenumerationlimit = -1(无限)或其他适当的数字。
标签: sql-server powershell