如何在Shell脚本中的CSV文件中插入数据库列名

我正在针对oracle数据库执行以下脚本。

sqlplus -s $DBUSER/$DBPASS@$DBHOST:$DBPORT/$DBSID << FIN_SQL > $pi_cancellation.csv
SET HEADING ON
SET FEEDBACK OFF
SET LInesIZE 32767
SET PAGESIZE 0
SET SERVEROUTPUT OFF
SELECT  ROOT_PROC_INS_ID || ',' || PROCESS_INSTANCE || ',' || PROCESS_TEMPLATE || ',' || START_TIME || ',' || STATUS || ',' || ATTRIBUTE2 || ',' || ATTRIBUTE14
FROM BPMUSER.EC_PE_STATUS
WHERE START_TIME<(SYSDATE - 15) AND (STATUS='pi_halted' OR STATUS='pi_failed')
ORDER BY START_TIME DESC;
FIN_SQL

我想将列名插入CSV文件中,但不像上面的sql查询中给出的那样,而是如下所示。例如应该在Attribute2的CSV文件中插入Order_Ref

ROOT_PROCESS_INSTANCE,PROCESS_INSTANCE,PROCESS_NAME,START_DATE,STATUS,ORDER_REF,LINE_NUMber
pvm:0a12dd82,pvm:0a12dd84,TechnicalErrorProcess,21-JUN-19 07.01.58.560000 AM,pi_halted,38930,1
pvm:0a12dd77,pvm:0a12dd79,20-JUN-19 12.36.27.384000 PM,1572846,1
pvm:0a12dd6t,pvm:0a12dd6v,20-JUN-19 12.05.22.145000 PM,38929,1
pvm:0a12dd4h,pvm:0a12dd4l,17-JUN-19 07.11.43.522000 AM,9973686,1
shijy07 回答:如何在Shell脚本中的CSV文件中插入数据库列名

在运行SQL * Plus之前回显标题行,并关闭其标题。

echo 'ROOT_PROCESS_INSTANCE,PROCESS_INSTANCE,PROCESS_NAME,START_DATE,STATUS,ORDER_REF,LINE_NUMBER' > $pi_cancellation.csv
sqlplus -s $DBUSER/$DBPASS@$DBHOST:$DBPORT/$DBSID << FIN_SQL >> $pi_cancellation.csv
SET HEADING OFF
SET FEEDBACK OFF
SET LINESIZE 32767
SET PAGESIZE 0
SET SERVEROUTPUT OFF
SELECT  ROOT_PROC_INS_ID || ',' || PROCESS_INSTANCE || ',' || PROCESS_TEMPLATE || ',' || START_TIME || ',' || STATUS || ',' || ATTRIBUTE2 || ',' || ATTRIBUTE14
FROM BPMUSER.EC_PE_STATUS
WHERE START_TIME<(SYSDATE - 15) AND (STATUS='pi_halted' OR STATUS='pi_failed')
ORDER BY START_TIME DESC;
FIN_SQL
本文链接:https://www.f2er.com/2800310.html

大家都在问