RetrieVe/UniVerseSQL输出如何保留换行前的空格?
解决RetrieVe/UniVerseSQL输出丢失换行前空格的问题
直接导出到AIX本地文件(推荐)
绕过终端格式化环节,直接把查询结果写入AIX文本文件,从根源避免空格丢失:
- RetrieVe方式:
执行查询前先指定输出文件,写完后关闭输出重定向:
这种方式会完整保留XML的所有原始字符,包括空格,不会触发任何终端换行截断逻辑。OUTPUT '/your/aix/path/xml_output.txt' SELECT YOUR_XML_COLUMN FROM YOUR_TABLE OUTPUT OFF - UniVerse SQL方式:
使用EXPORT命令直接导出到文件,无需依赖FMT格式:
导出的文件会完整保留XML结构,没有多余换行和空格丢失问题。EXPORT TO '/your/aix/path/xml_output.txt' SELECT YOUR_XML_COLUMN FROM YOUR_TABLE;
修改终端宽度规避换行
如果必须通过终端输出,临时设置超大终端宽度,让XML内容无需换行就能完整输出:
- 在AIX终端执行以下命令调整环境变量:
export TERM=vt100 export COLUMNS=10000 - 不使用
FMT格式执行查询,此时输出不会因为宽度不够被截断换行,自然也就不会丢失换行前的空格。
注意:部分UniVerse版本对COLUMNS的上限有约束,可根据XML实际长度调整数值,确保能容纳完整内容。
调整UniVerse系统配置
修改UniVerse的MAXCOLUMNS参数,提升默认输出宽度上限:
- 进入UniVerse管理员模式,编辑
UVOPTIONS配置文件:ED UVOPTIONS MAXCOLUMNS - 将数值改为足够容纳XML内容的宽度(比如10000),保存后重启UniVerse服务。
后续执行查询时无需指定FMT格式,输出也不会被截断,从系统层面解决问题。
内容的提问来源于stack exchange,提问作者Galaxiom
相关产品推荐
相关产品推荐

