I am trying to write SQL query output into a .csv file. But in the output columns are displaying in different lines instead of coming in one line.
Main Code shell script:
this is my code:
#!/bin/bash
file="db_detail.txt"
. $file
rm /batch/corpplan/bin/dan.csv
SPOOL_FILE="/batch/corpplan/bin/dan.csv"
SQL="/batch/corpplan/bin/myquery.sql"
sqlplus -s UserName/password@database << EOF
set linesize 60
spool on
set head on
set colsep ',';
SPOOL $SPOOL_FILE
@$SQL
SPOOL OFF
EOF
myquery.sql
SELECT DISTINCT ID_1,USER_NAME,TIME_POSTED FROM Shchemaname.tablename WHERE TIME_POSTED > to_date('05/31/2019', 'MM/DD/YYYY') and USER_NAME = 'PL26218';
I am able to get desired output after changing my shell script as mentioned below.
#!/bin/bash
file="db_detail.txt"
. $file
rm /batch/corpplan/bin/dan.csv
SPOOL_FILE="/batch/corpplan/bin/dan.csv"
SQL="/batch/corpplan/bin/myquery.sql"
sqlplus -s username/password@database << EOF
COLUMN ID_1 HEADING 'FORM_NAME' FORMAT A50
COLUMN USER_NAME FORMAT A50
COLUMN TIME_POSTED FORMAT A50
set linesize 200
spool on
set head on
set colsep '|';
SPOOL $SPOOL_FILE
@$SQL
SPOOL OFF
EOF