首页主机资讯centos中sqlplus命令行操作指南

centos中sqlplus命令行操作指南

时间2025-11-13 19:31:03发布访客分类主机资讯浏览1390
导读:CentOS中SQL*Plus命令行操作指南 一、前置准备:安装Oracle Instant Client与配置环境变量 SQL*Plus是Oracle数据库的命令行工具,需先安装Oracle Instant Client并配置环境变量才能...

CentOS中SQL*Plus命令行操作指南

一、前置准备:安装Oracle Instant Client与配置环境变量

SQL*Plus是Oracle数据库的命令行工具,需先安装Oracle Instant Client并配置环境变量才能使用。

  1. 下载Oracle Instant Client
    访问Oracle官方网站下载适用于Linux的Basic包和SQL*Plus包(如oracle-instantclient-basic-21.6.0.0.0-1.x86_64.rpmoracle-instantclient-sqlplus-21.6.0.0.0-1.x86_64.rpm)。
  2. 安装包文件
    使用rpm命令本地安装:
    sudo yum localinstall oracle-instantclient-basic-*.rpm oracle-instantclient-sqlplus-*.rpm
    
  3. 配置环境变量
    编辑~/.bashrc文件,添加以下内容(根据实际安装路径调整):
    export ORACLE_HOME=/usr/lib/oracle/21/client64
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export PATH=$PATH:$ORACLE_HOME/bin
    
    使环境变量生效:
    source ~/.bashrc
    

二、连接到Oracle数据库

SQL*Plus支持多种连接方式,根据场景选择:

  1. 连接本机数据库(操作系统认证,DBA权限)
    无需输入密码,直接通过/ as sysdba登录,用于数据库启动/关闭等管理操作:
    sqlplus / as sysdba
    
  2. 连接本机数据库(用户名/密码认证)
    输入用户名和密码,仅能操作当前用户的对象:
    sqlplus username/password
    
  3. 连接远程数据库(网络服务名)
    通过@服务名指定远程数据库,需提前配置tnsnames.ora文件(包含主机、端口、服务名映射):
    sqlplus username/password@orcl
    
  4. 连接远程数据库(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脚本(需系统安装vivim):

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命令的用法)。

四、示例操作流程

  1. 连接数据库
    sqlplus scott/tiger@//192.168.1.100:1521/orcl
    
  2. 执行查询并保存结果
    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
    
  3. 执行脚本
    SQL>
         @/home/user/update_emp.sql
    
  4. 退出SQL*Plus
    SQL>
         exit
    

通过以上步骤,可在CentOS系统中熟练使用SQL*Plus进行Oracle数据库的管理与操作。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos中sqlplus命令行操作指南
本文地址: https://pptw.com/jishu/747356.html
centos环境下sqlplus如何备份数据库 CentOS Syslog如何排错

游客 回复需填写必要信息