For the below oracle function need to be triggered.
I have written a shell script and invoked the oracle function. it would be great if anyone can check whether the code one is efficent or not.
Please change the code if you feel whichever is correct.
Oracle function condition requirement
CASE 1:
(LOCATION = 'chennai'| LOCATION = 'Banglore')
:VALUE:=LOCATION_COUNT.CHENNAI_BANG
(&LOCATION,&SALES);
case 2:
(LOCATION ='SALEM'|LOCATION = 'TRICHY' |LOCATION = 'PONDI')
:VALUE:=LOCATION_COUNT.SAL_TRICHY_PONDI
(&LOCATION,&SALES);
case 3:
(LOCATION = 'TIRUPUR')
:VALUE:=LOCATION_COUNT.GET_TIRUP
(&LOCATION,&SALES);
Code:
cat function_check.ksh
chennai_blr () {
VALUE=`sqlplus -S /NOLOG << EOF
CONNECT dbs/passwd@dbtod
SET head off
SET serveroutput on
select LOCATION_COUNT.CHENNAI_BANG
(&LOCATION,&SALES) from dual;
exit;
EOF
}
Salem_Trichy_Pondi () {
VALUE=`sqlplus -S /NOLOG << EOF
CONNECT dbs/passwd@dbtod
SET head off
select :LOCATION_COUNT.SAL_TRICHY_PONDI
(&LOCATION,&SALES) from dual;
exit;
EOF`
}
Tirupur () {
VALUE=`sqlplus -S /NOLOG << EOF
CONNECT dbs/passwd@dbtod
SET head off
select LOCATION_COUNT.GET_TIRUP
(&LOCATION,&SALES); from dual;
exit;
EOF`
}
while read file
do
if [[ "$file" == "chennai" || "$file" == "banglore" ]]
then
chennai_blr
elif [[ "$file" == "salem" || "$file" == "trichy" || "$file" == "pondi" ]]
then
Salem_Trichy_Pondi
elif [[ "$file" == "tripur" ]]
then
Tirupur
else
echo "You are out of chennai, blr, Salem_Trichy_Pondi and Tirupur, seems you are in $file"
fi
done < "function_check"