如何去除Sqlplus导出文本中的下划线分隔线?
解决Oracle SQL*Plus导出文本时的下划线分隔线问题
我来帮你搞定这个烦人的下划线分隔线问题!最直接且优雅的解决方法是在你的SQL*Plus配置参数里添加set underline off命令,它会直接关闭列标题下方的下划线生成逻辑。
修改后的完整脚本参数部分如下:
sqlplus -s ${DB_CONNECTION} << EOF > temp.$$ set colsep ',' set pagesize 50000 set linesize 256 set trimspool on set feedback off set trim on set underline off # 新增此行,关闭标题下划线分隔线 spool -- 在这里写入你的查询语句 spool off EOF
为什么会出现这条下划线?
SQL*Plus默认会给列标题添加下划线分隔线,用来视觉区分标题行和数据行,underline参数的默认值就是短横线-,所以只要输出列标题,就会自动生成对应的下划线行。通过set underline off可以彻底禁用这个默认行为。
备选方案:用sed事后过滤
如果暂时没法修改SQL*Plus脚本,也可以在导出完成后用sed命令批量删除这些下划线行:
# 将临时文件处理后输出到最终文件 sed '/^--------.*$/d' temp.$$ > final_output.txt
这个命令会匹配所有以连续短横线开头的行并删除,适合快速处理已生成的文件。
内容的提问来源于stack exchange,提问作者Pedram Ezzati
相关产品推荐
相关产品推荐

