Not able to write SQL query output in to .csv file with shell script.


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Not able to write SQL query output in to .csv file with shell script.
# 1  
Old 06-13-2019
Not able to write SQL query output in to .csv file with shell script.

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:
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

Code:
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';


My Current output is:
Code:
ID_1
------------------------------------------------------------
USER_NAME
------------------------------------------------------------
TIME_POSTED
---------------
1 - Choose COA Seed Options
PL26218
05-JUN-19

Budget Seed On_Off
PL26218
04-JUN-19

ID_1
------------------------------------------------------------
USER_NAME
------------------------------------------------------------
TIME_POSTED
---------------

1 - Choose COA Seed Options
PL26218
04-JUN-19

Desired output is :
Code:
ID_1, USER_NAME, TIME_POSTED
1 - Choose COA Seed Options,PL26218,05-JUN-19
Budget Seed On_Off,PL26218,04-JUN-19
1 - Choose COA Seed Options,PL26218,04-JUN-19

Moderator's Comments:
Mod Comment Please do wrap your samples/codes in to CODE TAGS as per forum rules.

Last edited by RavinderSingh13; 06-13-2019 at 11:25 PM..
# 2  
Old 06-14-2019
You should attempt to write the code to process (parse) your text.

Your shell script had no basic code to process the text in your output.
# 3  
Old 06-14-2019
Those header "underlines" indicate that the first two colums are 60 characters wide and thus won't fit into linesize 60.You can

- trim / chop the columns to sensible lengths
- increase line size so all three fit
- select "one column" only by concatenating the three trimmed column values.

Last edited by RudiC; 06-14-2019 at 06:32 AM..
# 4  
Old 06-14-2019
Thanks Neo and RudiC for your inputs.

RudiC - i will increase the the line size and try.

Neo - Could you please give me some hint about the part i missed, I am new to unix.
# 5  
Old 06-14-2019
Hi Guys,

I am able to get desired output after changing my shell script as mentioned below.

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
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

Moderator's Comments:
Mod Comment Please use CODE tags when displaying sample input, output, and code segments (as required by forum rules).

Last edited by Don Cragun; 06-15-2019 at 03:26 AM..
This User Gave Thanks to sandeepgoli53 For This Post:
# 6  
Old 06-14-2019
Thanks for sharing your final code. Glad you found a solution. Pls be aware that this is NOT coming close to the desired output in post #1.
# 7  
Old 06-14-2019
Hi RudiC,

Yes i changes column names and used '|' as delimiter.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script appending output of sql query

I am writing the following script to create the file v_out.txt. sqlplus -s /nolog << EOF CONNECT scott/tiger@orcl; whenever sqlerror exit sql.sqlcode; set newpage 0; SET PAGESIZE 0; SET ECHO OFF; SET FEEDBACK OFF; SET HEADING OFF; SET VERIFY OFF; SET LINESIZE 100; set tab off; set... (7 Replies)
Discussion started by: itzkashi
7 Replies

2. Shell Programming and Scripting

Run sql query in shell script and output data save as delimited text

I want to run sql query in shell script and output data save as delimited text (delimited text would be comma) Code: SPOOL_FILE=/pgedw/dan.txt SQL=/pgedw/dan.sql sqlplus -s username/password@myhost:port/servicename <<EOF set head on set COLSEP , set linesize 32767 SET TRIMSPOOL ON SET... (8 Replies)
Discussion started by: Jaganjag
8 Replies

3. Shell Programming and Scripting

Need to write shell script for my .sql file call

Hi Guys, I need to write a simple shell script which will generate a .csv file/report by calling .sql file inside a shell script. Can somebody help me on this. Thanks in advance! Regards, LK (7 Replies)
Discussion started by: lakshmanraok117
7 Replies

4. Shell Programming and Scripting

SQL Query in Shell Script output formatting

Hi All, #!/bin/ksh call_sql () { sql=$1 sqlplus -s $sqlparam_sieb <<EOF SET ECHO OFF; SET NEWPAGE NONE; SET SQLBL OFF; SET VERIFY OFF; SET LINESIZE 2000; SET... (2 Replies)
Discussion started by: Kevin Tivoli
2 Replies

5. Shell Programming and Scripting

SQL query in UNIX script - output in flat file

Hi, I never did this before... what I want to do is execute a SQL query from a unix script and redirect sql query's output to a flat file (comma separated one) without the header info (no column names). I would also want not to print the query's output to the screen. snapshot of my script:... (13 Replies)
Discussion started by: juzz4fun
13 Replies

6. Shell Programming and Scripting

Problem in formatting output of SQL query in excel sheet in shell script

Hi Guys.. Need your help to format the output of my shell script. I am using spool command to take out put in csv file. below is my code. (for example) col USERNAME for a15 col EMAIL for a30 col FULL_NAME for a20 col LAST_LOGIN for a40 col DATE_CREATED for a40 SPOOL 120.csv... (3 Replies)
Discussion started by: Agupte
3 Replies

7. Shell Programming and Scripting

SQL Script's output to a CSV file

I need to call and execute an SQL script within a KSH script and get the output/extracted data into a CSV file. Is there any way to get the out put in a CSV file other than spooling ? I tried spooling. Problem is if there is any wrning/comment/Error they all will be spooled into the csv file. I... (4 Replies)
Discussion started by: Sriranga
4 Replies

8. Shell Programming and Scripting

How to use sql data file in unix csv file as input to an sql query from shell

Hi , I used the below script to get the sql data into csv file using unix scripting. I m getting the output into an output file but the output file is not displayed in a separe columns . #!/bin/ksh export FILE_PATH=/maav/home/xyz/abc/ rm $FILE_PATH/sample.csv sqlplus -s... (2 Replies)
Discussion started by: Nareshp
2 Replies

9. Shell Programming and Scripting

TO execute .sql 2005 query file in shell script

Hi, I know in oracle a .sql file is called by @ <path> /<filename>. But how to call in sql 2005, I am opening the sql sessionwith sqsh, is there any command to execute there a .sql file (query in sql 2005) in K shell script. (0 Replies)
Discussion started by: n2ekhil
0 Replies

10. Shell Programming and Scripting

need help in reading a output of a sql query in unix script

i'm used a sql query in a unix script to get the information from table. but unable to extract the output which i need. Any help with logic will be greatly appreciated. my sql query provide output some thing like this - col1 col2 count ---- ---- ------ A B 10 c D 6 e... (8 Replies)
Discussion started by: pharos467
8 Replies
Login or Register to Ask a Question