在 Debian 上升级 SQL*Plus 的可行路径
Debian 官方仓库通常不提供 Oracle 的 SQL*Plus。实际做法是安装或升级 Oracle Instant Client(Basic 或 Basic Light + SQL*Plus,必要时再装 SDK/Devel),并用系统的包管理器管理这些包。若此前通过 alien 将 Oracle 的 RPM 包转换为 DEB 安装,升级时建议继续沿用相同方式,或改用 ODPI-C 基于源代码的安装以获得更好的兼容性与维护性。
升级前检查
sqlplus -v。ldconfig -p | grep libsqlplus.so,确保指向新版本目录。升级方案
方案一 RPM 转 DEB 并升级(适合既有环境沿用相同方式)
sudo apt-get install alien。sudo alien -i oracle-instantclient<version>-basic-<ver>.x86_64.rpm
sudo alien -i oracle-instantclient<version>-sqlplus-<ver>.x86_64.rpm
# 可选
sudo alien -i oracle-instantclient<version>-devel-<ver>.x86_64.rpm
sudo apt-get install -f
echo "/usr/lib/oracle/<version>/client64/lib/" | sudo tee /etc/ld.so.conf.d/oracle.conf
sudo ldconfig
sqlplus -v。方案二 ODPI-C 源代码安装(推荐,便于后续升级与多版本并存)
sudo apt-get install build-essential libaio1 cmake git。git clone https://github.com/oracle/odpi.git
cd odpi && mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/oracle/instantclient_<ver> ..
make -j$(nproc) && sudo make install
git clone https://github.com/oracle/instantclient-sqlplus.git
cd instantclient-sqlplus && mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/oracle/instantclient_<ver> -DODPI_C_INCLUDE_DIR=/opt/oracle/instantclient_<ver>/include -DODPI_C_LIBRARY=/opt/oracle/instantclient_<ver>/lib/libodpic.so ..
make -j$(nproc) && sudo make install
export ORACLE_HOME=/opt/oracle/instantclient_<ver>
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
sqlplus -v。多版本并存与回退
sudo ln -sfn /opt/oracle/instantclient_<new> /opt/oracle/instantclient,再调整 PATH/LD_LIBRARY_PATH 指向该软链,便于统一调用与回退。常见问题与验证
sudo ldconfig。/opt/oracle/instantclient_<ver>/bin/sqlplus -v。sqlplus user/pass@//host:1521/service 或配置 tnsnames.ora 后 sqlplus user/pass@tns_alias 验证连通性。rlwrap sqlplus ...。