ORACLE_SID, Easily Changing
Do you have a Linux system with multiple databases? Here is an easily way to be able to quickly change the ORACLE_SID while in a BASH shell without having a separate file\profile for every ORACLE_SID.
To achieve this you need to add an alias for each ORACLE_SID as shown below to your .baschrc file. In this example change db1-4 and DB1-4 to your ORACLE_SIDs.
Creating ORACLE_SID Aliases
# Set ORACLE_SID alias db1='echo "export ORACLE_SID=DB1">$HOME/.setORACLE_SID;source $HOME/.setORACLE_SID;echo $ORACLE_SID' alias db2='echo "export ORACLE_SID=DB2">$HOME/.setORACLE_SID;source $HOME/.setORACLE_SID;echo $ORACLE_SID' alias db3='echo "export ORACLE_SID=DB3">$HOME/.setORACLE_SID;source $HOME/.setORACLE_SID;echo $ORACLE_SID' alias db4='echo "export ORACLE_SID=DB4">$HOME/.setORACLE_SID;source $HOME/.setORACLE_SID;echo $ORACLE_SID'
How it Works
- The ; (semicolon) separates commands. So we can have multiple commands on one line.
- The first command creates the file .setORACLE_SID with the desired ORACLE_SID.
- The next command sources the file. This is actually what changes the ORACLE_SID environment variable.
- Next the echo command shows the current value for ORACLE_SID.
- Once in place you simply enter the alias name while on the command line to change the ORACLE_SID.
After making the changes to your .bashrc make sure to re-source it for your new aliases to become active.
The alias names (shown in lower case above) can be anything you want. The ORACLE_SID values tend to need to be in UPPER case in most environments.
You can also add a quick display of all your aliases like this:
alias db='echo "db1, db2, db3, db4"'
Then simply typing db shows all your alias commands.