sqlplus 输出 header 格式错误和 un-necessary 空行
sqlplus output header wrongly formatted and un-necessary blank lines
我是 SQL 的新手,我正在尝试 运行 查询以使用特定条件从数据库中提取警报并将结果输出到 csv 格式的文件。
我创建了下面的 SQL 脚本,但是 header 没有以所需的格式生成。
set markup HTML on ENTMAP on spool off PREFORMAT on;
set pagesize 0 embedded on;
set feedback off;
set termout off;
set trimout on;
spool on;
set trimspool on;
spool /tmp/scripts/outputFiles/calExport.csv REPLACE;
select (y.ALARM_DN||','||x.CO_NAME||','||to_char(y.ALARM_TIME, 'dd-MM-yyyy HH24:MI:SS')||','||y.ALARM_TEXT||','||y.ALARM_TYPE||','||y.PERCEIVED_SEVERITY||','||y.ADDITIONAL_INFO_1||','||y.ADDITIONAL_INFO_3||','||y.ADDITIONAL_INFO_2) from CTP_COMMON_OBJECTS x, FM_ALARM y where y.NE_GID=x.CO_GID and y.ALARM_STATUS=1;
spool off;
exit;
当前输出:
'
'
(Y.ALARM_DN||','||X.CO_NAME||','||TO_CHAR(Y.ALARM_TIME,'DD-MM-YYYYHH24:MI:SS')||
--------------------------------------------------------------------------------
xxxx/xxxx-143/xxxx-143,xxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxx
,03-10-2017 15:19:49,Dead Peer Detected,1,2,shared:N;,,additionalFaultId:0;
xxxx/xxxx-143/xxxx-143,xxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxx,13-09-
2017 12:45:48,LOS on unit 0, Ethernet interface 4,1,1,,,
xxxx/xxxx-143/xxxx-143,xxxxxxxxxxxxxxxxxxxx,03-10-2017 15:19:39,BA
NOTIFICATION,3,3,Files collected,,100 100 100 6450xxxx 1 0
path=/xxxx-1(Left) additionalFaultId:6450;
问题:
如何更正 header 格式以匹配以下内容?
ALARM_DN,NAME,ALARM_TIME,TEXT,TYPE,SEVERITY,A,B,C
如何去除输出文件开头和结尾的"pre"标签?
- 如何去除输出中每行后面的空行?我使用了 set trimspool on 但空白行仍然存在。
感谢您的帮助。
BR,
A.M.
要将标题更改为您想要的内容,请将您的 SQL*Plus 脚本更改为:
set markup HTML on ENTMAP on spool off PREFORMAT on;
set pagesize 0 embedded on;
set feedback off;
set termout off;
set trimout on;
SET HEADING OFF;
spool on;
set trimspool on;
spool /tmp/scripts/outputFiles/calExport.csv REPLACE;
SELECT 'ALARM_DN,NAME,ALARM_TIME,TEXT,TYPE,SEVERITY,A,B,C' FROM DUAL
UNION ALL
select (y.ALARM_DN||','||x.CO_NAME||','||to_char(y.ALARM_TIME, 'dd-MM-yyyy HH24:MI:SS')||','||y.ALARM_TEXT||','||y.ALARM_TYPE||','||y.PERCEIVED_SEVERITY||','||y.ADDITIONAL_INFO_1||','||y.ADDITIONAL_INFO_3||','||y.ADDITIONAL_INFO_2) from CTP_COMMON_OBJECTS x, FM_ALARM y where y.NE_GID=x.CO_GID and y.ALARM_STATUS=1;
spool off;
exit;
祝你好运。
我是 SQL 的新手,我正在尝试 运行 查询以使用特定条件从数据库中提取警报并将结果输出到 csv 格式的文件。
我创建了下面的 SQL 脚本,但是 header 没有以所需的格式生成。
set markup HTML on ENTMAP on spool off PREFORMAT on;
set pagesize 0 embedded on;
set feedback off;
set termout off;
set trimout on;
spool on;
set trimspool on;
spool /tmp/scripts/outputFiles/calExport.csv REPLACE;
select (y.ALARM_DN||','||x.CO_NAME||','||to_char(y.ALARM_TIME, 'dd-MM-yyyy HH24:MI:SS')||','||y.ALARM_TEXT||','||y.ALARM_TYPE||','||y.PERCEIVED_SEVERITY||','||y.ADDITIONAL_INFO_1||','||y.ADDITIONAL_INFO_3||','||y.ADDITIONAL_INFO_2) from CTP_COMMON_OBJECTS x, FM_ALARM y where y.NE_GID=x.CO_GID and y.ALARM_STATUS=1;
spool off;
exit;
当前输出: '
' (Y.ALARM_DN||','||X.CO_NAME||','||TO_CHAR(Y.ALARM_TIME,'DD-MM-YYYYHH24:MI:SS')|| -------------------------------------------------------------------------------- xxxx/xxxx-143/xxxx-143,xxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxx ,03-10-2017 15:19:49,Dead Peer Detected,1,2,shared:N;,,additionalFaultId:0;xxxx/xxxx-143/xxxx-143,xxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxx,13-09- 2017 12:45:48,LOS on unit 0, Ethernet interface 4,1,1,,,
xxxx/xxxx-143/xxxx-143,xxxxxxxxxxxxxxxxxxxx,03-10-2017 15:19:39,BA NOTIFICATION,3,3,Files collected,,100 100 100 6450xxxx 1 0 path=/xxxx-1(Left) additionalFaultId:6450;
问题:
如何更正 header 格式以匹配以下内容?
ALARM_DN,NAME,ALARM_TIME,TEXT,TYPE,SEVERITY,A,B,C
如何去除输出文件开头和结尾的"pre"标签?
- 如何去除输出中每行后面的空行?我使用了 set trimspool on 但空白行仍然存在。
感谢您的帮助。
BR,
A.M.
要将标题更改为您想要的内容,请将您的 SQL*Plus 脚本更改为:
set markup HTML on ENTMAP on spool off PREFORMAT on;
set pagesize 0 embedded on;
set feedback off;
set termout off;
set trimout on;
SET HEADING OFF;
spool on;
set trimspool on;
spool /tmp/scripts/outputFiles/calExport.csv REPLACE;
SELECT 'ALARM_DN,NAME,ALARM_TIME,TEXT,TYPE,SEVERITY,A,B,C' FROM DUAL
UNION ALL
select (y.ALARM_DN||','||x.CO_NAME||','||to_char(y.ALARM_TIME, 'dd-MM-yyyy HH24:MI:SS')||','||y.ALARM_TEXT||','||y.ALARM_TYPE||','||y.PERCEIVED_SEVERITY||','||y.ADDITIONAL_INFO_1||','||y.ADDITIONAL_INFO_3||','||y.ADDITIONAL_INFO_2) from CTP_COMMON_OBJECTS x, FM_ALARM y where y.NE_GID=x.CO_GID and y.ALARM_STATUS=1;
spool off;
exit;
祝你好运。