SQLPlus导出数据至文件无表头问题求助
解决SQLPlus导出文件无表头的问题
嘿,我来帮你搞定这个表头不显示的问题!你的脚本里藏着一个关键的冲突点——**set pages 0**这个命令会直接禁用SQL*Plus的表头输出,哪怕你已经写了set heading on也没用。
问题根源
set pages 0(和set pagesize 0等价)的作用是让SQL*Plus完全跳过所有分页相关内容,包括表头、页脚和分页符。这就导致你设置的set heading on被直接覆盖,自然看不到表头了。
修改后的脚本
把set pages 0删掉,保留你设置的set pagesize 50000(这个值足够大,能让所有结果在一页内显示,不会分页,同时保留表头)。另外,把egrep -v connected改成更精准的egrep -v "Connected to",避免误过滤其他内容:
sqlplus -s /nolog <<EOF | egrep -v "Connected to" > data.csv connect us/pas@sid set feedback off set heading on set wrap off set pagesize 50000 set linesize 3000 select job from try_table; EOF
额外优化建议
如果想要让CSV格式更友好,还可以加几个参数:
set underline off:去掉表头下方的下划线分隔线(默认表头会带下划线,导出CSV通常不需要)set trimspool on:移除每行末尾的多余空格,让输出更干净- 如果是多字段导出,加
set colsep ','可以直接用逗号分隔字段,完美适配CSV格式
修改后的优化版脚本:
sqlplus -s /nolog <<EOF | egrep -v "Connected to" > data.csv connect us/pas@sid set feedback off set heading on set wrap off set pagesize 50000 set linesize 3000 set underline off set trimspool on -- 多字段导出时启用下面这行 -- set colsep ',' select job from try_table; EOF
内容的提问来源于stack exchange,提问作者defekas17
相关产品推荐
相关产品推荐

