Prerequisites
Before configuring SQL*Plus on CentOS, ensure your system meets the following requirements:
sudo yum install -y libaio libaio-devel wget unzip (these are required for Oracle Instant Client to function properly).Step 1: Download Oracle Instant Client Packages
Oracle Instant Client is the lightweight, standalone package needed to run SQL*Plus. Visit the Oracle Instant Client Downloads page and download the following RPM packages (replace 21.6.0.0.0 with your desired version):
oracle-instantclient-basic-21.6.0.0.0-1.x86_64.rpm (core client files)oracle-instantclient-sqlplus-21.6.0.0.0-1.x86_64.rpm (SQL*Plus utility).Step 2: Install Oracle Instant Client via Yum
Navigate to the directory where the RPMs were downloaded and install them using yum (this resolves dependencies automatically):
cd /path/to/downloaded/rpms sudo yum localinstall oracle-instantclient-basic-*.rpm oracle-instantclient-sqlplus-*.rpm Yum will install the packages to /usr/lib/oracle/<version>/client64 (e.g., /usr/lib/oracle/21/client64).
Step 3: Configure Environment Variables
Edit your user’s .bashrc file (or /etc/profile for system-wide access) to set critical environment variables:
nano ~/.bashrc Add the following lines (adjust paths if your installation differs):
export ORACLE_HOME=/usr/lib/oracle/21/client64 # Path to Instant Client export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH # Link to client libraries export PATH=$ORACLE_HOME/bin:$PATH # Add SQL*Plus to PATH Save the file and apply changes:
source ~/.bashrc Verify the variables are set correctly:
echo $ORACLE_HOME # Should show the client path echo $PATH # Should include $ORACLE_HOME/bin ```. **Step 4: Verify SQL*Plus Installation** Run the following command to confirm SQL*Plus is accessible: ```bash sqlplus -v You should see output like:
SQL*Plus: Release 21.0.0.0.0 - Production on Wed Sep 25 14:30:00 2025 Version 21.6.0.0.0 This confirms SQL*Plus is installed and ready to use.
Optional Step 5: Configure TNSNAMES.ORA for Remote Connections
If you need to connect to a remote Oracle database (instead of using easy connect syntax username/password@host:port/service), create a tnsnames.ora file:
sudo mkdir -p $ORACLE_HOME/network/admin # Create directory if it doesn’t exist sudo nano $ORACLE_HOME/network/admin/tnsnames.ora Add an entry for your database (replace placeholders with actual values):
MYDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db.example.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.example.com) ) ) Save the file. Now you can connect using:
sqlplus username/password@MYDB ```. **Optional Step 6: Enhance SQL*Plus Experience** - **Alias for rlwrap**: Install `rlwrap` to enable command history and line editing in SQL*Plus: ```bash sudo yum install -y rlwrap echo "alias sqlplus='rlwrap sqlplus'" >> ~/.bashrc source ~/.bashrc glogin.sql (a SQL*Plus script) to set default formatting:wget https://raw.githubusercontent.com/oracle/Oracle-SQLPlus-Tools/master/glogin.sql mv glogin.sql $ORACLE_HOME/sqlplus/admin/ This script sets preferences like column width and timestamp display.Troubleshooting Tips
PATH includes $ORACLE_HOME/bin and run source ~/.bashrc again.libaio and libaio-devel are installed (step 1).tnsnames.ora) or easy connect syntax (host/port/service).