如何从Sqlplus输出中删除下划线

时间:2018-05-30 12:03:59

标签: bash oracle sqlplus

Bash脚本,我用它从Oracle数据库导出一些数据并将其插入文本文件。

问题是当我将数据导出到文本文件时,输出文件中总会有一行我需要删除它。

需要在输出中删除------。

在参数

下面放置了Bash脚本
sqlplus -s ${DB_CONNECTION} << EOF > temp.$$
set colsep ','
set pagesize 50000
set linesize 256
set trimspool on
set feedback off
set trim on
spool

--Query

spool off

输出将是:

SDATE     ,ERROR_CODE                  ,STATUS      ,PROCESS                       ,FAILURE_COUNT
----------,----------------------------------------,--------------------,--------------------------------------------------,----------------------------------------

3 个答案:

答案 0 :(得分:3)

SET UNDERLINE OFF

SQL * Plus:版本12.2.0.1.0生产于5月30日星期三08:11:28 2018

版权所有(c)1982,2016,Oracle。保留所有权利。

上次成功登入时间:2018年5月30日星期三08:05:09 -04:00

连接到: Oracle Database 12c企业版12.2.0.1.0版 - 64位生产

SQL> set underline off
SQL> set pagesize 10
SQL> set linesize 80
SQL> col first_name format a20
SQL> col last_name format a20
SQL> select first_name, last_name from hr.employees fetch first 6 rows only;

FIRST_NAME       LAST_NAME
Ellen            Abel
Sundar           Ande
Mozhe            Atkinson
David            Austin
Hermann          Baer
Shelli           Baida

6 rows selected.

SQL> 

来自Docs

SET UND [ERLINE] { - | c | ON | OFF} 设置用于在报表中为列标题加下划线的字符。下划线字符不能是字母数字字符或空格。 ON或OFF打开或关闭下划线。 ON将c的值更改回默认值“ - ”。

当预格式化输出为On(SET MARKUP HTML PREFORMAT)时,仅在iSQL * Plus中支持SET UNDERLINE。

答案 1 :(得分:2)

如果要取消整个标题,请使用

set heading off

https://docs.oracle.com/database/121/SQPUG/ch_twelve040.htm#SQPUG082

如果要查看列名,而不是下面的行,请使用:

set underline off

https://docs.oracle.com/database/121/SQPUG/ch_twelve040.htm#SQPUG159

答案 2 :(得分:0)

我之前的解决方案是

sed -i '/-/d' temp

但最好是放

underline off