sqlcmd - 如何使用 sqlcmd 创建固定宽度的输出
问题描述
以下在我们的 SQL 2008 R2 环境中执行,一切正常。供应商在 SQL Server 2012 和格式更改上执行。
例如一个简单的选择
Select '1',cast(RIGHT(replace(convert(varchar,[EMPL_EARNINGS].[PAY_PD_END_DT],112),'-',''),6) as CHAR(6))
我不能使用-W
,因为某些字段用空格填充。
我选择了 3 个具有相同声明的不同日期字段。
一个是正确的 6 个字符宽,另一个是 8 个,还有一个是 9 个。
批处理文件调用是 sqlcmd -S ServerName -i "c:\query\myquery.sql" -o "v:\Temp\myouput.dat" -h -1 -s"" -d"DBname"
.
解决方案
发现列宽与列名的宽度相匹配,即使我使用的是 -h-1。不知道为什么它适用于我们的版本,但不适用于供应商。
快速修复是将所有列名缩短为 <= 所需的列宽。
想知道真正的修复吗?
推荐阅读
- angular - Ionic 3 使用按钮进行水平滚动而不显示滚动条
- javascript - 根据来自 axios 的响应检查复选框
- java - android App在最小化应用程序后自动启动
- gatsby - 当在“生产”中的浏览器中直接访问 url 时,GatsbyJs 客户端仅路径转到 404 页面
- java - 如何通过休眠注释映射模型类中的布尔字段
- angular - 如何将我的 Json 数组转换为角度 5 中的对象
- android - 离线模式下在 build.gradle 中配置 Android Gradle gradle-core-3.1.4.jar 插件
- android - 如何动态更新 Viewpager 中的片段?
- c# - 如何在 C# 中使用 mongodb 进行 datagridview 分页?或者如何在没有数据库的情况下进行分页?
- eclipse-che - 为 Eclipse Che 创建语言服务器