Search This Blog

Total Pageviews

Thursday, 26 February 2026

oracle set env












cat setora.sh
#!/bin/bash

export ORACLE_BASE=/opt/oracle

setora() {

    if [ -z "$1" ]; then
        echo "Usage: setora <ORACLE_SID>"
        echo "Example: setora FREE"
        return 1
    fi

    ORA_SID=$1

    # Read from /etc/oratab (ignore comments)
    ORA_ENTRY=$(grep -v '^#' /etc/oratab | grep "^${ORA_SID}:")

    if [ -z "$ORA_ENTRY" ]; then
        echo "SID not found in /etc/oratab"
        return 1
    fi

    ORA_HOME=$(echo $ORA_ENTRY | cut -d':' -f2)

    export ORACLE_SID=$ORA_SID
    export ORACLE_HOME=$ORA_HOME
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib

    # Clean old Oracle paths from PATH
    PATH=$(echo $PATH | tr ':' '\n' | grep -v '/opt/oracle' | paste -sd ':' -)

    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

    echo ""
    echo "✅ Environment switched"
    echo "ORACLE_SID  = $ORACLE_SID"
    echo "ORACLE_HOME = $ORACLE_HOME"
    echo ""
}

alias sqlme='sqlplus / as sysdba'

showora() {
    echo "ORACLE_BASE = $ORACLE_BASE"
    echo "ORACLE_HOME = $ORACLE_HOME"
    echo "ORACLE_SID  = $ORACLE_SID"
}

# List available databases
lsora() {
    echo "Available databases from /etc/oratab:"
    grep -v '^#' /etc/oratab | awk -F: '{print $1}'
}

lsora
echo setora

---

type setora
setora is a function
setora ()
{
    if [ -z "$1" ]; then
        echo "Usage: setora <ORACLE_SID>";
        echo "Example: setora FREE";
        return 1;
    fi;
    ORA_SID=$1;
    ORA_ENTRY=$(grep -v '^#' /etc/oratab | grep "^${ORA_SID}:");
    if [ -z "$ORA_ENTRY" ]; then
        echo "SID not found in /etc/oratab";
        return 1;
    fi;
    ORA_HOME=$(echo $ORA_ENTRY | cut -d':' -f2);
    export ORACLE_SID=$ORA_SID;
    export ORACLE_HOME=$ORA_HOME;
    export TNS_ADMIN=$ORACLE_HOME/network/admin;
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib;
    PATH=$(echo $PATH | tr ':' '\n' | grep -v '/opt/oracle' | paste -sd ':' -);
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH;
    echo "";
    echo "✅ Environment switched";
    echo "ORACLE_SID  = $ORACLE_SID";
    echo "ORACLE_HOME = $ORACLE_HOME";
    echo ""
}




*************

cat free.env
#!/bin/bash

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi


export TWO_TASK=
export ORACLE_UNQNAME=
export LD_LIBRARY_PATH=/opt/oracle/product/26ai/dbhomeFree/lib
export ORACLE_SID=FREE
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/26ai/dbhomeFree
export TNS_ADMIN=/opt/oracle/product/26ai/dbhomeFree/network/admin
export OH=/opt/oracle/product/26ai/dbhomeFree
export ORACLE_HOSTNAME=
alias sqlme='sqlplus / as sysdba'
export PATH=/opt/oracle/product/26ai/dbhomeFree/bin:/opt/oracle/product/26ai/dbhomeFree/OPatch:$PATH
export PATH=/home/oracle/bin:/home/oracle/LDLIB:/opt/oracle/product/26ai/dbhomeFree/bin:/usr/sbin:/home/oracle/java/jdk-21.0.5/bin:/home/oracle/bin:/home/oracle/sqlcl/bin:/home/oracle/sqldeveloper:/home/oracle/datamodeler:/home/oracle/.local/bin:/home/oracle/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oracle/sqlcl/bin:/home/oracle/sqldeveloper:/home/oracle/bin

orabasehome;orabaseconfig;cat $ORACLE_HOME/install/orabasetab
alias sqlme='sqlplus / as sysdba'

===




cat setora2.sh

#!/bin/bash

export ORACLE_BASE=/opt/oracle

# ===== COLORS =====
RED='\033[1;31m'
GREEN='\033[1;32m'
YELLOW='\033[1;33m'
BLUE='\033[1;34m'
CYAN='\033[1;36m'
NC='\033[0m'

# ===== MAIN FUNCTION =====
setora() {

    if [ -z "$1" ]; then
        echo -e "${YELLOW}Usage: setora <ORACLE_SID>${NC}"
        return 1
    fi

    ORA_SID=$1
    ORA_ENTRY=$(grep -v '^#' /etc/oratab | grep "^${ORA_SID}:")

    if [ -z "$ORA_ENTRY" ]; then
        echo -e "${RED}❌ SID not found in /etc/oratab${NC}"
        return 1
    fi

    ORA_HOME=$(echo "$ORA_ENTRY" | cut -d':' -f2)

    export ORACLE_SID=$ORA_SID
    export ORACLE_HOME=$ORA_HOME
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib

    # Clean old Oracle paths safely
    CLEAN_PATH=$(echo "$PATH" | tr ':' '\n' | grep -v '/opt/oracle' | paste -sd ':' -)
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$CLEAN_PATH

    clear

    echo -e "${BLUE}=================================================${NC}"
    echo -e "${CYAN}        ORACLE ENVIRONMENT SWITCHED             ${NC}"
    echo -e "${BLUE}=================================================${NC}"

    # PROD detection
    if [[ "$ORACLE_SID" =~ PROD|PRD|PRODDB ]]; then
        echo -e "${RED}⚠ WARNING: PRODUCTION DATABASE ⚠${NC}"
    else
        echo -e "${GREEN}Environment Type : Non-Production${NC}"
    fi

    echo -e "${YELLOW}ORACLE_SID  : ${NC}$ORACLE_SID"
    echo -e "${YELLOW}ORACLE_HOME : ${NC}$ORACLE_HOME"

    # Instance check
    PMON=$(ps -ef | grep pmon | grep -w "$ORACLE_SID" | grep -v grep)

    if [ -n "$PMON" ]; then
        echo -e "${GREEN}Instance Status : RUNNING${NC}"
    else
        echo -e "${RED}Instance Status : NOT RUNNING${NC}"
    fi

    # Database version
    if [ -x "$ORACLE_HOME/bin/sqlplus" ]; then
        DBVER=$($ORACLE_HOME/bin/sqlplus -V | awk '{print $3}')
        echo -e "${CYAN}Oracle Version  : $DBVER${NC}"
    fi

    echo -e "${BLUE}=================================================${NC}\n"
}

# ===== HELPERS =====

alias sqlme='sqlplus / as sysdba'

showora() {
    echo -e "${CYAN}Current Oracle Environment${NC}"
    echo -e "${YELLOW}ORACLE_BASE : ${NC}$ORACLE_BASE"
    echo -e "${YELLOW}ORACLE_HOME : ${NC}$ORACLE_HOME"
    echo -e "${YELLOW}ORACLE_SID  : ${NC}$ORACLE_SID"
}

lsora() {
    echo -e "${CYAN}Databases from /etc/oratab:${NC}"
    grep -v '^#' /etc/oratab | awk -F: '{print $1}'
}










cat setora.sh
#!/bin/bash

export ORACLE_BASE=/opt/oracle

setora() {

    if [ -z "$1" ]; then
        echo "Usage: setora <ORACLE_SID>"
        echo "Example: setora FREE"
        return 1
    fi

    ORA_SID=$1

    # Read from /etc/oratab (ignore comments)
    ORA_ENTRY=$(grep -v '^#' /etc/oratab | grep "^${ORA_SID}:")

    if [ -z "$ORA_ENTRY" ]; then
        echo "SID not found in /etc/oratab"
        return 1
    fi

    ORA_HOME=$(echo $ORA_ENTRY | cut -d':' -f2)

    export ORACLE_SID=$ORA_SID
    export ORACLE_HOME=$ORA_HOME
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib

    # Clean old Oracle paths from PATH
    PATH=$(echo $PATH | tr ':' '\n' | grep -v '/opt/oracle' | paste -sd ':' -)

    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

    echo ""
    echo "✅ Environment switched"
    echo "ORACLE_SID  = $ORACLE_SID"
    echo "ORACLE_HOME = $ORACLE_HOME"
    echo ""
}

alias sqlme='sqlplus / as sysdba'

showora() {
    echo "ORACLE_BASE = $ORACLE_BASE"
    echo "ORACLE_HOME = $ORACLE_HOME"
    echo "ORACLE_SID  = $ORACLE_SID"
}

# List available databases
lsora() {
    echo "Available databases from /etc/oratab:"
    grep -v '^#' /etc/oratab | awk -F: '{print $1}'
}

lsora
echo setora

Oracle DBA

anuj blog Archive