我想将sqlplus
输出返回为 tsv。为此,我使用set markup csv
. 但它不接受制表符作为分隔符,而不是\t
实际制表符。
错误是
SP2-1660: Invalid option. Only a single character be specified.
在以下任一方面:
sqlplus -M "CSV on delimiter '\t' QUOTE OFF" -s user/pass@host
sqlplus -M "CSV on delimiter ' ' QUOTE OFF" -s user/pass@host
sqlplus
版本是21.0
。解决方案必须是sqlplus
参数或set
命令。
为什么?
sqlplus
可以在登录后自动运行一个脚本,可以设置你需要的格式。举个例子:无论如何,TSV 与 CSV 仅差 1
sed
。在启动 sqlplus 时应用
-M "CSV ON DELIMI '\t' QUOTE OFF"
参数会关闭某些SET
选项,如下文所述:参考: 启用 SET MARKUP CSV 时不支持的命令(Oracle 文档 | 用户指南和参考)
并且由于
DELIMI[TER]
启动参数的部分非常有限,您可能希望放弃-M CSV
启动参数而选择设置SET COLSEP
。祝你好运。