Spool file, only if data exists.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Spool file, only if data exists.
# 1  
Old 08-09-2011
Question Spool file, only if data exists.

Hi All,

I have one Question, that is it possible to check the spool output?
What i mean to say is "spool the file only if data exists"

I am trying to fetch data from a sql query, and want to generate a file, on a condition that the file should be generated, only if the output of the sql query gives me atleast one record.

Thanks in advance.
spiabhi
# 2  
Old 08-09-2011
Sounds like an Oracle SQL*Plus thing. SQL*Plus is not big on conditional language with presentation features like spool, especially with rdbms engine things like row count. Spool it always, grep for content, rm if none and log that you removed it.
# 3  
Old 08-10-2011
Same idea as DGPickett proposed, but with different storage: create a temporary table, select into that, run a COUNT(*) against it, and spool out if that's more than 0 records. With a bit of PL/SQL it can be done in 1 call to the sqlplus client.
# 4  
Old 08-10-2011
@pludi: controlling SQL*Plus commands like spool with PL/SQL is hard, but SQL*Plus can be tricked to act conditional.
Code:
column spool_destination noprint new_value spooldestination
SELECT DECODE(COUNT(*),0,'/dev/null','spoolfilename')  AS spool_destination
  FROM temporary_table_containing_resultset;
spool &spooldestination
SELECT * 
  FROM temporary_table_containing_resultset;
spool off

These 2 Users Gave Thanks to cero For This Post:
# 5  
Old 08-10-2011
Yes, sometimes the data is the control, like NAN. Use plenty of comments for maintainability! Smilie
# 6  
Old 08-18-2011
I usually just do it this way, if I need to get a count for reporting or other uses:


Code:
   sqlplus -s "${USR}/${PSS}@${DB}" <<EOF > $OUT_FILE
      WHENEVER SQLERROR EXIT 1;
      SET ECHO OFF NEWPAGE 0 SPACE 0 PAGESIZE 0 FEED OFF HEAD OFF
      SELECT count(*)
        FROM TABLE_A A
            ,TABLE_B B
       WHERE A.X = B.X
         AND A.Y = B.Y
      ;
      EXIT
EOF

   rc=$?
   if [[ $rc -eq 0 ]]; then
      count=$(( `cat $OUT_FILE` ))
      echo "Total: $count"
   else
      exit $rc
   fi

   if [[ ${count} -gt 0 ]]; then
     # Do something...
   fi

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Order of data in Spool File

Hello, I have a shell script through which I am executing .sql file and spooling the result of Query from .sql . I want to spool the result in ascending order. Is there any parameter to be set to print result in ascending or descending order. Thanks in advance. (4 Replies)
Discussion started by: Aparna.N
4 Replies

2. Shell Programming and Scripting

Spool file requirement

Hi, I have a requirement of Connecting to sqlplus from unix Execute the package. The output of package is stored in a table Need to query the table and move to txt file. The problem iam facing is, when I try to spool the file. I get the sql query also along with the output.... (6 Replies)
Discussion started by: Shanmugapriya D
6 Replies

3. UNIX for Dummies Questions & Answers

Column Header in the Spool file

Hi All, I have a problem with the column heading while spooling the data from the database. Since i want the column header, therefore i am not using SET HEADING OFF, and i am getting the header, but for the longer column name, some of the character from the column name is missing. for... (7 Replies)
Discussion started by: Pramod_009
7 Replies

4. Shell Programming and Scripting

Spool Data in a file

Hello, I am trying to spool data from database into a file on solaris through ksh. Data is getting fetched but the problem is record is getting split in to multiple lines. excerpt from sql is whenever sqlerror exit 1; set define on set echo off set feed off set head off set... (1 Reply)
Discussion started by: abhi1988sri
1 Replies

5. Shell Programming and Scripting

File exists, but cannot be opened.How to check- whether it could be opened to read when it exists

Hi #Testing for file existence if ; then echo 'SCHOOL data is available for processing' else echo 'SCHOOL DATA IS NOT AVAILABLE FOR PROCESSING' : i wrote a script, where it begins by checking if file exists or not. If it exists, it truncates the database... (2 Replies)
Discussion started by: rxg
2 Replies

6. Shell Programming and Scripting

spool to file in ksh

hi all, am trying to write a ksh script which will take a username, password, db instance as input arguments and login to the database using sqlplus and select some data via sql and spool to a file. problem is that i am using "sqlplus -s" in order to hide the username/password and it doesnt... (8 Replies)
Discussion started by: cesarNZ
8 Replies

7. Shell Programming and Scripting

Problem in spool file

Hi, Iam a newbie. When I give the below query at SQL prompt. SQL> select col1||'`ß`'||col2 from tablename where rownum<2; 1-J7WGX`ß`1-7OKC-23 Iam getting ß within appostropies...... If I remove appostropies and give the query it is throwing an error. If I give the same query in spool as... (1 Reply)
Discussion started by: kknayak
1 Replies

8. AIX

Spool data file

Dear Gurus, Tried searching for some clues in this forum but dont seem to be able to find my answer. :confused: Anyway i have a quick question: Today I have produced a messages generated from a application and placed them on the print queue. Before this I had stopped the printer queue, so... (2 Replies)
Discussion started by: lweegp
2 Replies

9. UNIX for Dummies Questions & Answers

SQLPlus spool file

HI Have some problem with spooling out some relatively large number of records (~2-3 mil) Small table - OK though. Getting error: SP2 0308: cannot close spool file. Any thoughts? sqlplus -s user/pwd << EOF set term off set head off set trims on set pages 0 set... (1 Reply)
Discussion started by: Leo_NN
1 Replies

10. Shell Programming and Scripting

how to spool a unix file

hi, can anyone help me by saying how can i spool a unix file.. do we need to specify the pathname as such to spool the file .. right now, i tried giving like spool filename in the sql prompt.. but its not giving me the required output even if i can see that the command is being executed.. ... (2 Replies)
Discussion started by: kripssmart
2 Replies
Login or Register to Ask a Question