centos中sqlplus命令行操作指南
导读:CentOS中SQL*Plus命令行操作指南 一、前置准备:安装Oracle Instant Client与配置环境变量 SQL*Plus是Oracle数据库的命令行工具,需先安装Oracle Instant Client并配置环境变量才能...
CentOS中SQL*Plus命令行操作指南
一、前置准备:安装Oracle Instant Client与配置环境变量
SQL*Plus是Oracle数据库的命令行工具,需先安装Oracle Instant Client并配置环境变量才能使用。
- 下载Oracle Instant Client
访问Oracle官方网站下载适用于Linux的Basic包和SQL*Plus包(如oracle-instantclient-basic-21.6.0.0.0-1.x86_64.rpm、oracle-instantclient-sqlplus-21.6.0.0.0-1.x86_64.rpm)。 - 安装包文件
使用rpm命令本地安装:sudo yum localinstall oracle-instantclient-basic-*.rpm oracle-instantclient-sqlplus-*.rpm - 配置环境变量
编辑~/.bashrc文件,添加以下内容(根据实际安装路径调整):使环境变量生效:export ORACLE_HOME=/usr/lib/oracle/21/client64 export LD_LIBRARY_PATH=$ORACLE_HOME/lib export PATH=$PATH:$ORACLE_HOME/binsource ~/.bashrc
二、连接到Oracle数据库
SQL*Plus支持多种连接方式,根据场景选择:
- 连接本机数据库(操作系统认证,DBA权限)
无需输入密码,直接通过/ as sysdba登录,用于数据库启动/关闭等管理操作:sqlplus / as sysdba - 连接本机数据库(用户名/密码认证)
输入用户名和密码,仅能操作当前用户的对象:sqlplus username/password - 连接远程数据库(网络服务名)
通过@服务名指定远程数据库,需提前配置tnsnames.ora文件(包含主机、端口、服务名映射):sqlplus username/password@orcl - 连接远程数据库(IP+端口+服务名)
直接指定远程数据库的IP、端口和服务名,无需依赖tnsnames.ora:sqlplus username/password@//hostname:port/service_name
三、常用SQL*Plus命令
1. 执行SQL脚本
使用@或@@执行SQL脚本文件(.sql格式):
@file_path:执行指定路径的脚本(如@/home/user/create_table.sql);@@file_path:在脚本文件中引用同目录下的其他脚本(如脚本a.sql中包含@@b.sql,则a.sql执行时会自动查找b.sql)。
示例:
SQL>
@/home/user/select_emp.sql
2. 编辑SQL脚本
使用edit命令编辑指定路径的SQL脚本(需系统安装vi或vim):
SQL>
edit /home/user/select_emp.sql
编辑完成后,按:wq保存并退出,脚本内容会自动加载到SQL缓冲区。
3. 保存与加载缓冲区
- 保存缓冲区内容到文件:使用
save命令将当前SQL缓冲区的内容保存到指定文件(如save /home/user/query_result.sql); - 加载文件内容到缓冲区:使用
get命令将指定文件的内容加载到SQL缓冲区(如get /home/user/query_result.sql),加载后可修改并执行。
4. 显示与修改缓冲区
- 显示缓冲区内容:使用
list(或简写l)命令显示缓冲区中的SQL语句(如l); - 修改缓冲区内容:
change/old/new:替换缓冲区中第一个匹配的old字符串为new(如c/emp/dept,将emp替换为dept);append/text:在缓冲区当前行末尾追加text(如a ,loc,在select deptno, dname后追加,loc);insert/line/text:在指定行前插入text(如i 2 ,loc,在第2行前插入,loc)。
5. 控制输出格式
- 设置列宽:使用
column命令调整列的显示宽度(如column ename format a20,将ename列宽设置为20字符); - 设置列标题:修改列的显示标题(如
column ename heading Employee Name,将ename列标题改为Employee Name); - 设置分页:调整每页显示的行数(如
set pagesize 20,将每页显示20行); - 设置行宽:调整每行的显示宽度(如
set linesize 100,将每行显示100字符); - 显示NULL值:将NULL值显示为指定文本(如
column sal null 'No Salary',将sal列的NULL值显示为No Salary)。
6. 事务控制
- 提交事务:使用
commit命令保存当前事务的修改(如commit); - 回滚事务:使用
rollback命令撤销当前事务的修改(如rollback); - 设置保存点:使用
savepoint命令设置事务的保存点(如savepoint sp1),便于部分回滚(如rollback to sp1)。
7. 其他实用命令
- 断开连接:使用
disconnect命令断开与数据库的连接,但不会退出SQL*Plus(如disconnect); - 退出SQL*Plus:使用
exit命令退出SQL*Plus(如exit); - 查看当前用户:使用
show user命令显示当前登录的用户名(如show user); - 查看帮助:使用
help命令查看SQL*Plus命令的帮助信息(如help column,查看column命令的用法)。
四、示例操作流程
- 连接数据库:
sqlplus scott/tiger@//192.168.1.100:1521/orcl - 执行查询并保存结果:
SQL> set linesize 100 SQL> set pagesize 20 SQL> column ename format a20 SQL> column sal format $9,999.99 SQL> spool /home/user/emp_result.txt SQL> select empno, ename, sal, deptno from emp where deptno = 10; SQL> spool off - 执行脚本:
SQL> @/home/user/update_emp.sql - 退出SQL*Plus:
SQL> exit
通过以上步骤,可在CentOS系统中熟练使用SQL*Plus进行Oracle数据库的管理与操作。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos中sqlplus命令行操作指南
本文地址: https://pptw.com/jishu/747356.html
