Ubuntu下SQL*Plus使用教程
一、安装SQL*Plus客户端
SQL*Plus是Oracle数据库的命令行交互工具,Ubuntu环境下可通过以下两种方式安装:
1. 安装Oracle Instant Client(推荐轻量级方案)
Oracle Instant Client是Oracle提供的精简客户端套件,包含SQL*Plus、基础库等组件,适合连接远程Oracle数据库。
- 步骤1:下载组件
从Oracle官方网站下载以下Instant Client包(选择与系统架构匹配的Linux x86-64版本):instantclient-basic(基础功能包,必选)instantclient-sqlplus(SQL*Plus工具,必选)instantclient-tools(可选,包含数据泵、SQL*Loader等工具)
下载地址:Oracle Instant Client Downloads(需登录Oracle账号)。
- 步骤2:安装依赖
打开终端,执行以下命令安装必要依赖:sudo apt-get update sudo apt-get install alien libaio1 - 步骤3:转换并安装RPM包
Oracle Instant Client通常以RPM格式提供,需用alien工具转换为Debian包(.deb):
(将sudo alien -i oracle-instantclient-basic-.x86_64.rpm sudo alien -i oracle-instantclient-sqlplus- .x86_64.rpm 替换为实际下载的版本号,如23.3.0.0.0) - 步骤4:解压Zip包(可选)
若下载的是Zip格式,可直接解压到指定目录(如/opt/oracle/instantclient):unzip instantclient-basiclite-linux.x64-.zip -d /opt/oracle/instantclient unzip instantclient-sqlplus-linux.x64- .zip -d /opt/oracle/instantclient
2. 通过APT直接安装(适用于Ubuntu官方仓库)
若需快速安装基础版本,可通过APT命令获取:
sudo apt-get install sqlplus
此方式安装的SQL*Plus版本可能较旧,建议优先使用Oracle Instant Client以获得最新功能。
二、配置环境变量
安装完成后,需配置环境变量使系统识别SQL*Plus命令。编辑~/.bashrc(当前用户)或/etc/profile(全局)文件:
vim ~/.bashrc
在文件末尾添加以下内容(根据实际安装路径调整):
# Oracle Instant Client路径配置
export ORACLE_HOME=/opt/oracle/instantclient
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
# 可选:设置默认数据库连接(替换为实际SID)
export ORACLE_SID=orcl
保存后执行以下命令使配置生效:
source ~/.bashrc
三、验证SQL*Plus安装
在终端输入以下命令,若显示SQL*Plus版本信息,则说明安装成功:
sqlplus -v
输出示例:
SQL*Plus: Release 23.3.0.0.0 - Production on Wed Nov 5 10:00:00 2025
Version 23.3.0.0.0
四、连接Oracle数据库
SQL*Plus连接数据库的语法为:
sqlplus /[@//:/]
- 本地连接(无需监听):
若Oracle数据库运行在本地且无需通过网络监听,可使用以下格式:sqlplus username/password - 远程连接(需监听):
若数据库在远程服务器,需指定主机、端口和服务名(或SID):
(将sqlplus scott/tiger@//192.168.1.100:1521/orclscott、tiger、192.168.1.100、1521、orcl替换为实际用户名、密码、主机IP、端口和服务名)
五、常用SQL*Plus命令
连接成功后,进入SQL*Plus交互界面,常用命令如下:
1. 基本SQL操作
- 查询数据:
SELECT * FROM employees; -- 查询employees表所有记录 - 插入数据:
INSERT INTO employees (id, name, salary) VALUES (1, 'John Doe', 5000); - 更新数据:
UPDATE employees SET salary = 5500 WHERE id = 1; - 删除数据:
DELETE FROM employees WHERE id = 1;
2. 命令行控制
- 执行SQL文件:
将SQL语句保存为query.sql文件,用以下命令执行:sqlplus username/password @query.sql - 保存输出到文件:
使用SPOOL命令将查询结果保存到文件:SPOOL output.txt SELECT * FROM employees; SPOOL OFF - 清屏:
CLEAR SCREEN
3. 格式化输出
- 设置列宽:
COLUMN name FORMAT A20 -- 将name列宽度设置为20字符 - 设置行宽:
SET LINESIZE 100 -- 设置每行显示100字符 - 分页显示:
SET PAGESIZE 20 -- 每页显示20条记录
4. 退出SQL*Plus
EXIT
或
QUIT
六、常见问题解决
1. “sqlplus: command not found”错误
- 原因:SQL*Plus未安装或环境变量未配置。
- 解决方法:
- 确认是否安装Oracle Instant Client或通过APT安装了sqlplus;
- 检查
~/.bashrc中的PATH变量是否包含SQL*Plus的安装路径(如/opt/oracle/instantclient); - 运行
source ~/.bashrc使配置生效; - 若仍未解决,尝试使用完整路径执行(如
/opt/oracle/instantclient/sqlplus)。
2. 连接远程数据库失败
- 原因:监听服务未启动、网络不通或TNS配置错误。
- 解决方法:
- 确认远程数据库的监听服务已启动(
lsnrctl status); - 检查网络连通性(
ping); - 确认
tnsnames.ora文件(位于$ORACLE_HOME/network/admin)中包含正确的连接描述符:ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
- 确认远程数据库的监听服务已启动(
通过以上步骤,即可在Ubuntu环境下使用SQL*Plus连接Oracle数据库并执行SQL操作。如需更复杂的功能(如存储过程调试),可参考Oracle官方文档或相关教程。
以上就是关于“ubuntu下sqlplus使用教程”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm