DBAsupport.com Forums - Powered by vBulletin
Results 1 to 2 of 2

Thread: Set Oracle environment Variable with shell script !!

Hybrid View

  1. #1
    Join Date
    Nov 2002
    Posts
    170

    Set Oracle environment Variable with shell script !!

    I have the following script which doesn't work as suppose to any ideas what;s wrong ??

    cat setenv.sh
    Code:
    if [ -t 0 ]                             # Command executed from a terminal
    then
            ORACLE_SID=""
            while [ -z "${ORACLE_SID}" ]
            do
                    tput clear; tput rev
                    echo "Valid Oracle SIDs are :"
                    tput rmso
                    for SID in `cat /etc/oratab|grep -v "^#"|cut -f1 -d: -s`
                    do
                            echo "                  ${SID}"
                    done
                    DEFAULT=`cat /etc/oratab|grep -v "^#"|cut -d: -f1 -s|head -1`
                    echo "\nEnter the Oracle SID you require (def: $DEFAULT): \c"
                    read ANSWER
                    [ "${ANSWER}" = "" ] && ANSWER=$DEFAULT
                    export ORACLE_SID=`grep "^${ANSWER}:" /etc/oratab|cut -d: -f1 -s`
                    export ORACLE_HOME=`grep "^${ANSWER}:" /etc/oratab|cut -d: -f2 -s`
                    if [ "${ORACLE_SID}" = "" ]
                    then
                            echo "\n\n              ${ANS}: Invalid Oracle SID  \c"
                            sleep 2
                    fi
            done
    else                                    # Set to first entry in oratab
            export ORACLE_SID=`cat /etc/oratab|grep -v "^#"|cut -d: -f1 -s|head -1`
            export ORACLE_HOME=`cat /etc/oratab|grep -v "^#"|cut -d: -f2 -s|head -1`
    fi
    
    export ORACLE_SID=$ORACLE_SID
    export ORACLE_HOME=$ORACLE_HOME
    export PATH=${PATH}:${ORACLE_HOME}/bin
    #ORAENV_ASK=NO
    #. ${ORACLE_HOME}/bin/oraenv
    #ORAENV_ASK=
    echo
    echo Oracle SID is now `tput rev`$ORACLE_SID`tput rmso`, Oracle Home is `tput rev`$ORACLE_HOME`tput rmso`
    echo
    I am reading the oratab and asking for which sid to set to and then export ORACLE_SID and ORACLE_HOME based on input.
    It does set the SID and HOME inside the script but when I echo it shows the default values. Any reason ????

    ./setenv.sh
    HTML Code:
    Valid Oracle SIDs are :
                            mdmop
                            mdmt
                            mdmp
    
    Enter the Oracle SID you require (def: mdmop): mdmt
    
    Oracle SID is now mdmt, Oracle Home is /u001/app/oracle/product/9.2/home
    
    
     ga016dhd -> echo $ORACLE_SID
    mdmop                                <== Not really set to mdmt(even if it said it is)
     ga016dhd -> echo $ORACLE_HOME
    /u001/app/oracle/product/9.2/home
     [/home/oracle/script - oracle]

  2. #2
    Join Date
    Jul 2002
    Location
    Lake Worth, FL
    Posts
    1,492

    Cool


    You need to execute the script as: dot, space, setenv.sh:

    . setenv.sh

    "The person who says it cannot be done should not interrupt the person doing it." --Chinese Proverb

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Click Here to Expand Forum to Full Width