Query - date command

Hi,

I am trying to capture the total run time of a script which contains SQL's by providing date command in top & bottom, it displaying both the times same in top & bottom.However the time in the sql connection is different.Please help.

OS - LINUX
Shell - ksh

printf "Script Started at $date" >> $LOGFILE
sqlplus userid/pwd test1.sql
.
.
.
sqlplus userid/pwd testn.sql
printf "Script Ended at $date" >> $LOGFILE

It seems you're storing the date in a variable somewhere in your script which is fine, however, if you need a start and end date then you will need to store the date command again.

$date=$(date)
printf "Script Started at $date" >> $LOGFILE
sqlplus userid/pwd test1.sql
.
.
.
sqlplus userid/pwd testn.sql
$date=$(date)
printf "Script Ended at $date" >> $LOGFILE
1 Like

You could use:

printf 'Script Started at %s\n' "$( date )" >> $LOGFILE
sqlplus userid/pwd test1.sql
.
.
.
sqlplus userid/pwd testn.sql
printf 'Script Ended at %s\n' "$( date )" >> $LOGFILE

Note that if you add set time on timing on at the top of your SQL commands,
you'll get the current and the elapsed time in your sqlplus output.

1 Like

You can also use time command to print elapsed time for sqlplus utility:

time sqlplus username/password@instance