I want to store the sql query output into a variable
#!/bin/ksh
ORACLE_SID=DB01;
export ORACLE_SID;
export FILE_PATH=/home/asg/Tmp
# Order Checking
echo " removing old files "
rm $FILE_PATH/Malformed_Order.txt
echo " Enter the Malformed Order ....!"
read orders
echo "Regrade check : $orders"
echo ""
v_test=$(sqlplus -s abc/xyz <<END
set feedback off;
set heading off;
select is_Regrade_order from portal.order where number = '"$orders"';
EXIT;
END)
echo "out put is: $v_test"
------------
The output expecting is
Enter the Malformed Order ....!
PO-DBMBDWG
Regrade check : PO-DBMBDWG
out put is : N
But when i tried executing the above scripting its throwing an error
The functionallity of the script is
value is passed through the command prompt
Passing the command line arguement to the sql query input
The sql query result has to be stored in a variable
$ cat ./get_oracle_var.ksh
#!/bin/ksh
MYDATE='20091113'
echo "MYDATE=$MYDATE"
SQL_OUTPUT=$(sqlplus -s abc/xyz <<END
SET SHOW OFF
SET PAGESIZE 0
SET FEEDBACK OFF
SET TERMOUT ON
SET TIME OFF
SET TIMING OFF
SET VERIFY OFF
SET ECHO OFF
SELECT 'True' FROM DUAL WHERE TRUNC(SYSDATE) = TO_DATE('$MYDATE', 'YYYYMMDD');
EXIT;
END)
echo "Output is: $SQL_OUTPUT"
exit 0
$ ./get_oracle_var.ksh
MYDATE=20091113
Output is: True
cat pol.sh
RACLE_SID=DB01;
export ORACLE_SID;to get it to work.
MYDATE='20091113'
echo "MYDATE=$MYDATE"
SQL_OUTPUT=$(sqlplus -s wlportal/wlportal <<END
SET SHOW OFF
SET PAGESIZE 0
SET FEEDBACK OFF
SET TERMOUT ON
SET TIME OFF
SET TIMING OFF
SET VERIFY OFF
SET ECHO OFF
SELECT 'True' FROM DUAL WHERE TRUNC(SYSDATE) = TO_DATE('$MYDATE', 'YYYYMMDD');
EXIT;
END)
echo "Output is: $SQL_OUTPUT"
exit 0
Ouput is
./pol.sh
./pol.sh[2]: to: not found.
MYDATE=20091113
Output is: SELECT "True" FROM DUAL WHERE TRUNC(SYSDATE) = TO_DATE("$MYDATE", "YYYYMMDD")
*
ERROR at line 1:
ORA-00904: "YYYYMMDD": invalid identifier