Shell script appending output of sql query


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script appending output of sql query
# 1  
Shell script appending output of sql query

I am writing the following script to create the file v_out.txt.

HTML Code:
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 trimspool off;
  spool v_out.txt
     SELECT '/****************************************************'
      ||CHR(10)
      || '************* Creating Table **************'
      ||CHR(10)
      || '*****************************************************/'
  FROM dual;
I want to append this file v_out.txt with the output of another query based on the condition provided below.

HTML Code:
select status from t1 where id = 10;
 if  status = 'COMPLETE' THEN
   SELECT COL1||' '||COL2 FROM T2;
 else 
   'status not complete'
  end if;
Any suggestions on how to do this will be appreciated.
# 2  
Is this within the same sqlplus session, or have you issues spool off perhaps?

I would think that:-
Code:
spool /tmp/a.txt ;
select Hello   from dual;
select Goodbye from dual;

.... type structure in your SQL would write a single output.

Can you show us what you have that is not working?



Robin
# 3  
Note that SPOOL has an APPEND option. So all you have to do is use it when you run your 2nd SQL:-
Code:
SPOOL v_out.txt APPEND

# 4  
i am trying this but it is not working..it is only printing first sql session output.. please advise..

Code:
variable1=$ echo "set feed off
set pages 0
select status from t1 where id = 10;
exit"  | sqlplus -s scott/tiger@orcl > v_tmp.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 trimspool off;
spool v_out.txt

     SELECT '/****************************************************'
      ||CHR(10)
      || '************* Creating  Table **************'
      ||CHR(10)
      || '*****************************************************/'
  FROM dual;
 spool off      
exit;

if [[ $(cat v_tmp.txt) == 'COMPLETE' ]]; then
		 echo "#_______________________________________________________#"
		 echo "STATUS IS COMPLETE"
		 echo "#_______________________________________________________#"
		
else 
     echo "#_______________________________________________________#"
		 echo "STATUS IS PENDING"
		 echo "#_______________________________________________________#"

 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 trimspool off;
spool V_OUT.txt append
     SELECT COL1||' '||COL2 FROM T2;
 spool off      
exit
fi;

# 5  
File name is case sensitive:-
Code:
spool v_out.txt
spool V_OUT.txt append

will create two different files.
# 6  
tried that ..still not working..
# 7  
You should ensure the here document is closed for both your SQL blocks:-
Code:
sqlplus -s /nolog << EOF
connect $conn_str;
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 trimspool off;
spool v_out.txt
select 'First SQL' from dual;
spool off;
exit;
EOF

sqlplus -s /nolog << EOF
connect $conn_str;
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 trimspool off;
spool v_out.txt append
select 'Second SQL' from dual;
spool off;
exit;
EOF

Produces output:-
Code:
$ cat v_out.txt
First SQL
Second SQL

Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #409
Difficulty: Medium
XENIX is a discontinued version of the UNIX operating system for various microcomputer platforms, licensed by Microsoft from AT&T Corporation in the late 1970s.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

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: #!/bin/bash file="db_detail.txt" . $file rm /batch/corpplan/bin/dan.csv... (6 Replies)
Discussion started by: sandeepgoli53
6 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

How do I read sql query into shell script?

Hello All, I'm trying to put together a shell script that will: 1. connect to an oracle database 2. execute a query 3. save the output to a csv file I know that I can execute the sqlplus -s user/pass @dbsid and get logged in. What I would like to do is have my query in a separate text... (9 Replies)
Discussion started by: bbbngowc
9 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

Shell script to perform appending of .sql files

Hi, We are having multiple .sql files generated programatically which is not containing.. create or replace -- at the start and / -- at the end We need to append those .sql files with the above 2 statements at their respective positions. We will be really thankful to get responses... (6 Replies)
Discussion started by: Rami Reddy
6 Replies

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

7. Red Hat

Sql query through shell script

hey , i am using this code to store value of a sql query and and then use it in other query but after some time , but it is not working. please help #!/bin/bash val_1=$( sqlplus -s rte/rted2@rel76d2 << EOF setting heading off select max(stat_id) from cvt_stats; exit EOF ) nohup... (5 Replies)
Discussion started by: ramsavi
5 Replies

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

9. Shell Programming and Scripting

query sql using shell script

query sql using shell script, is it possible? my friend told me to do a file.sql and link to my shell script, but can i query sql using shell script? thanks in advance! (2 Replies)
Discussion started by: kingpeejay
2 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

Featured Tech Videos