The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
display HTML text in body using unix mailX ???? sparan_peddu UNIX for Advanced & Expert Users 8 07-29-2008 10:23 PM
Can any body tell me. sackNumchai Linux 3 05-05-2008 09:28 PM
Mailx : can we have the body to be a binary file ? CKIRCH UNIX for Dummies Questions & Answers 5 01-01-2008 03:33 PM
mailx: concatenating strings for message body (KSH) rockysfr Shell Programming and Scripting 1 07-29-2007 05:12 AM
mailx error message : mailx: NUL changed to @ BG_JrAdmin UNIX for Dummies Questions & Answers 2 12-01-2005 06:27 AM

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 10-05-2006
Registered User
 

Join Date: Feb 2006
Posts: 23
Stumble this Post!
MAILX Body containing SQL results

I have a KSH script that runs a SQL script, then sends an email to me indicating that it's completed. I would like to modify it so that the body of the email will contain a count of the number of records Added, Changed, Deleted as a result of the SQL script.

Here's what I was trying, but it's not working...what am I doing wrong?
Code:
MESG_GOOD="Completed Successfully"

cntADD=sqlplus -s user/pwd select count(*) from tbl where...;
cntCHA=sqlplus -s user/pwd select count(*) from tbl where...;
cntDEL=sqlplus -s user/pwd select count(*) from tbl where...;

content="Adds: " && cntADD && "Changes: " && cntCHA && "Deletes: " &&cntDEL

/usr/bin/echo $content | /usr/bin/mailx -s $MESG_GOOD me@here.com

Last edited by dstinsman; 10-05-2006 at 12:50 PM.
Reply With Quote
Forum Sponsor
  #2 (permalink)  
Old 10-05-2006
Registered User
 

Join Date: Mar 2006
Location: Bangalore,India
Posts: 1,397
Stumble this Post!
Quote:
cntADD=sqlplus -s user/pwd select count(*) from tbl where...;
cntCHA=sqlplus -s user/pwd select count(*) from tbl where...;
cntDEL=sqlplus -s user/pwd select count(*) from tbl where...;
I think above code won't do what you intended to do.

try this

Code:
sqlplus -s user/pwd <<EOF
spool /res.lst
select count(*) from tbl where..;
select count(*) from tbl where..;
spool off
EOF
Code:
sed -n "/--*/{n;p;}" res.lst | tr '\n' ' '| read cntADD cntCHA cntDEL
Reply With Quote
  #3 (permalink)  
Old 10-05-2006
Registered User
 

Join Date: Feb 2005
Location: Broomfield, CO
Posts: 395
Stumble this Post!
I don't know about the SQL commands themselves however if you want to assign the output of a command to a variable, you need to use the backtick marks.

Code:
cntADD=`sqlplus -s user/pwd select count(*) from tbl where...;`
cntCHA=`sqlplus -s user/pwd select count(*) from tbl where...;`
cntDEL=`sqlplus -s user/pwd select count(*) from tbl where...;`
Since I write to multiple environments, I typically drop to the lowest common denominator so you could also use these instead of backticks but backticks are universal

Code:
cntADD=$(sqlplus...)
cntCHA=$(sqlplus...)
cntDEL=$(sqlplus...)
But it might not work with your specific shell.

Carl
Reply With Quote
Google The UNIX and Linux Forums
Reply

Thread Tools
Display Modes




All times are GMT -7. The time now is 12:33 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008 The CEP Blog All Rights Reserved -Ad Management by RedTyger Visit The Global Fact Book

Content Relevant URLs by vBSEO 3.2.0