A shell script wrap for Oracle's explain plan for SQLs.
#! /bin/ksh # Change this to your ORACLE connection _CONNECT=userid/passwd # Change this to suite your temporary directory _tmpfil=/tmp/seeplan.$$ #----------- No need to change below this line ----------------- _PROG=$0 usage() { echo "Usage : ${_PROG}" echo " filename - the name of file having single SQL statement" echo " reads the standard input if no filename is given" echo " logs in and shows the explain plan" echo " Author:Vattekkat Satheesh Babu" } shoerr() { echo "ERROR : $_MESSAGE" exit 1 } if [ $# -ne 1 ] then usage touch $_tmpfil [ $? -ne 0 ]&&(_MESSAGE='Cannot create file in /tmp';shoerr) echo "Type in the script , end by CTRL-D" echo "" cat > $_tmpfil _SCRIPT=$_tmpfil else _SCRIPT=$1 fi [ ! -s $_SCRIPT ]&&(_MESSAGE='Script file in error';shoerr) _SCRIPT_plan=/tmp/seeplan_$$.sql touch $_SCRIPT_plan [ $? -ne 0 ]&&(_MESSAGE='Cannot create file in /tmp';shoerr) cat>$_SCRIPT_plan<<FINCAT SET PAGESI 0 SET LINESI 80 SET VERIFY OFF SET FEEDBACK OFF SET ECHO OFF EXPLAIN PLAN SET STATEMENT_ID='CPLAN$$' INTO PLAN_TABLE FOR FINCAT cat $_SCRIPT >> $_SCRIPT_plan [ -f $_tmpfil ]&&rm -f $_tmpfil cat>>$_SCRIPT_plan<<FINCAT1 SELECT LPAD(' ',2*LEVEL)||OPERATION||''||OPTIONS||' '|| OBJECT_NAME EXPLAIN_PLAN FROM PLAN_TABLE WHERE STATEMENT_ID='CPLAN$$' CONNECT BY PRIOR ID=PARENT_ID AND STATEMENT_ID='CPLAN$$' START WITH ID=1 ; DELETE FROM PLAN_TABLE WHERE STATEMENT_ID='CPLAN$$' ; COMMIT; FINCAT1 sqlplus -s $_CONNECT<<FINSQL start $_SCRIPT_plan exit; FINSQL rm -f $_SCRIPT_plan
Since you are seeing this, it means that your browser does not support cascading style sheets. Please download and use one of the many browsers that support web standards.