`

SQLPLUS 使用的一些技巧

阅读更多
        在ORACLE的维护过程中,目前ORACLE有很多易用的客户端工具,如plsql、delveloer、TOAD,但作为数据库管理员也需要经常和SQLPLUS 打交道,一些常用的操作往往需要在SQLPLUS完成,如果SQLPLUS不熟悉也在很大程度上降低我们的维护效率,本文主要介绍一些在管理数据库过程中比较有用的的SQLPLUS技巧。
        技巧一:修改SQLPLUS的提示符
        1  问题描述:
        ORACLE的SQLPLUS默认情况下是没有系统提示符的,由于在日常维护操作中经常要在SQLPLUS下做一些高危险的操作如shutdown之类的操作,如果操作的对象错误将导致设备事故。
        2  解决办法:
        通过修改SQLPLUS提示符号,可以明确地标识所要操作的数据库,避免操作错误;
        3  处理过程:
        SQLPLUS程序在启动情况下可以通过设置相关参数,让其执行login.sql,然后通过修改login.sql脚本可以定义一些语句,达到修改SQLPLUS的提示符的目的,便于识别,login.sql的文件路径需要通过操作系统环境变量SQLPATH进行设置:
        WINDOWS环境下,通过修改注册表项目在SQLPATH(位置一般在ORACLE-HOME下)在注册表中,可以设置为D:/oracle/ora92/dbs
        UNIX的可以直接在ORACLE用户的profile文件中加入SQLPATH环境变量,可以设置export SQLPATH=/home/oracle/app/oracle/product/9.2/dbs;具体的login.sql,如下所示,可以根据需要实际修改:
        set serveroutput on size 1000000
        column old_name new_value pname
        set termout off
        select lower(user) || '@' ||instance_name old_name from v$INSTANCE;
        set sqlprompt '&pname> '
        set termout on
        通过这样修改每次通过SQLPLUS登陆系统的时候会显示username@instancname>更好地识别所要连接的数据库。注意:连接用户必须要有查看v$INSTANCE的权限。
        技巧二:在SQLPLUS 下执行操作系统命令
        在使用SQLPLUS的过程中,经常要执行一些操作系统方面的命令,可以通过两种方法:
        1)在SQLPLUS命令行下执行host命令,可以切换到操作系统命令行下,执行完后exit可以切换回SQLPLUS命令行下。
        2)直接在SQLPLUS 下执行敲一个”!”后面跟上具体的命令行(但在windows下不支持)。
        技巧三:在SQLPLUS修改sql语句:
        使用SQLPLUS的过程中也经常需要修改sql语句,但是SQLPLUS下的修改sql语句的命令过于烦琐不好记忆,可以通过定义相关变量达到很好的效果。
        1)在UNIX 下可以定义define_editor=vi,如果需要修改sql语句,直接在命令行下用edit就可以进入vi环境,和vi操作功能一样,方便操作,设置办法直接在sqlplus的命令行下敲:
        Define_editor=vi;
        在windows下可以定义define_editor=notepad,如果需要修改sql语句,直接在命令行下用edit就可以进入notepad编写环境,windows下操作就方便多了;
        技巧四:在SQLPLUS下查看sql语句的执行时间情况
        1)可以通过直接在sqlplus命令行下执行命令set time on(打开sql语句的执行时间显示);
        2)在sqlplus命令行下执行命令 set timing on(统计sql语句的执行时间);
        技巧五:在sqlplus 下查看SQL语句的执行计划
        在业务维护过程中,经常需要查看某个sql语句执行计划,看是否使用到合适的索引等,可以通过下操作来完成
        set autotrace traceonly exp
        select * from cncdlp114.t_unit where unitcode='hwjsgs';
        set autotrace off
        执行完成后可以看到语句的执行计划:
        注意:执行操作前的前提该用户下有plan_table表(一般都有),如果没有可以通
        过语句来建立
         -- Create table
        create table PLAN_TABLE
        (
          STATEMENT_ID      VARCHAR2(30),
          PLAN_ID           NUMBER,
          TIMESTAMP         DATE,
          REMARKS           VARCHAR2(4000),
          OPERATION         VARCHAR2(30),
          OPTIONS           VARCHAR2(255),
          OBJECT_NODE       VARCHAR2(128),
          OBJECT_OWNER      VARCHAR2(30),
          OBJECT_NAME       VARCHAR2(30),
          OBJECT_ALIAS      VARCHAR2(65),
          OBJECT_INSTANCE   INTEGER,
          OBJECT_TYPE       VARCHAR2(30),
          OPTIMIZER         VARCHAR2(255),
          SEARCH_COLUMNS    NUMBER,
          ID                INTEGER,
          PARENT_ID         INTEGER,
          DEPTH             INTEGER,
          POSITION          INTEGER,
          COST              INTEGER,
          CARDINALITY       INTEGER,
          BYTES             INTEGER,
          OTHER_TAG         VARCHAR2(255),
          PARTITION_START   VARCHAR2(255),
          PARTITION_STOP    VARCHAR2(255),
          PARTITION_ID      INTEGER,
          OTHER             LONG,
          DISTRIBUTION      VARCHAR2(30),
          CPU_COST          INTEGER,
          IO_COST           INTEGER,
          TEMP_SPACE        INTEGER,
          ACCESS_PREDICATES VARCHAR2(4000),
          FILTER_PREDICATES VARCHAR2(4000),
          PROJECTION        VARCHAR2(4000),
          TIME              INTEGER,
          QBLOCK_NAME       VARCHAR2(30)
        )
        结束语:
        其实ORACLE的SQLPLUS功能是很强大的,如果想研究其它的一些功能可以参考
        ORACLE的相关文档,提高维护技能
---------------------------------------------------------------
set pagesize  0;  -- 输出每页行数,缺省为24,为了避免分页,可设定为0
set heading off;  -- 输出域标题,缺省为on
set echo off;      -- 显示start启动的脚本中的每个sql命令,缺省为on
set feedback on;  -- 回显本次sql命令处理的记录条数,缺省为on
set termout off;  -- 显示脚本中的命令的执行结果,缺省为on
set trimout on;    -- 去除标准输出每行的拖尾空格,缺省为off
set trimspool on;  -- 去除重定向(spool)输出每行的拖尾空格,缺省为off
set linesize 30000; -- 输出一行字符个数,缺省为80
set numwidth 22;  -- 输出number类型域长度,缺省为10
SET VERIFY OFF ;  -- 去掉输出结果中的脚本回写
set colsep |      -- 域输出分隔符 缺省为 TAB键
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';  -- 修改日期显示格式
-----------------------------------------------------------------
分享到:
评论

相关推荐

    sqlplus的使用技巧

    介绍了在sqlplus的常见语法,set linesize,set pagesize等,设置数据库时间格式,设置字符集

    Uedit32与SQLPlus结合使用技巧

    ### Uedit32与SQLPlus结合使用技巧 在IT领域,高效的工作流程是提升生产力的关键。对于数据库开发者和管理员来说,结合使用Uedit32文本编辑器与Oracle SQLPlus可以极大地提高工作效率。本文将详细介绍如何配置这两...

    Oracle中SQLPLUS的常用指令技巧

    以下是一些关于SQLPLUS常用指令的详细解说: 1. **连接数据库**: 使用`connect`命令登录到Oracle数据库,格式如下: ```sql connect username/password@service_name ``` 其中,`username`是数据库用户,`...

    SQLPlus中的复制和粘贴技巧

    SQLPlus虽然不如图形化的数据库管理工具直观,但通过掌握一些实用技巧,我们可以提高在该命令行界面下的工作效率。以下是一些关于在SQLPlus中复制和粘贴的基本步骤以及一些高级技巧。 1. **基本复制步骤**: - ...

    SQLPLUS 常用指令收集与技巧

    SQLPLUS 常用指令收集与技巧, 改文档中列举了sql脚本中使用的各种sqlplus命令技巧,在编写shell时很有用

    (Oracle管理)ORACLE数据库sqlplus使用技巧.pdf

    【Oracle管理】ORACLE数据库sqlplus使用技巧 Sql*plus是Oracle数据库系统中一个非常强大的命令行工具,它允许用户直接与数据库交互,执行SQL语句、管理数据库对象以及生成脚本。掌握Sql*plus的一些高级技巧能显著...

    2020年(Oracle管理)ORACLE数据库sqlplus使用技巧.pdf

    【Oracle管理】ORACLE数据库sqlplus使用技巧 Sql*plus是Oracle数据库系统中的一款强大工具,用于交互式地执行SQL语句和PL/SQL块。它不仅提供了基本的查询功能,还包含了一些高级特性和技巧,能极大提高数据库管理员...

    SQLPLUS在Bash_shell的使用

    **SQLPLUS常用命令和使用技巧** 1. **启动SQLPLUS** 在Bash Shell中,我们通常使用以下两种方式启动SQLPLUS: - 静默模式:`sqlplus /nolog` 然后输入 `connect username/password@database` 来连接数据库。 - ...

    SQLPLUS命令的使用大全

    本文将详细解读SQLPLUS中的关键命令,涵盖从基本操作到高级技巧,帮助读者全面掌握SQLPLUS的使用方法。 ### 一、执行SQL脚本文件 在日常工作中,我们经常需要批量执行多个SQL语句。SQLPLUS支持通过`START`或`@`...

    SQLPLUS命令查询文档

    在SQLPLUS中,掌握一些基本的命令和技巧是至关重要的。以下是一些关键知识点: 1. **启动SQLPLUS**:用户可以通过在命令行输入`sqlplus /nolog`来启动SQLPLUS,然后用`connect`命令连接到数据库,如`connect ...

    (Oracle管理)ORACLE数据库sqlplus使用技巧.docx

    通过熟练掌握SQL*Plus的一些高级技巧,能够极大提高数据库管理和开发的效率。以下是一些关于如何使用SQL*Plus进行高效操作的知识点: 1. 动态生成批量脚本: 使用`SPOOL`命令结合`SELECT`语句,可以动态生成包含...

    2020年(Oracle管理)ORACLE数据库sqlplus使用技巧.docx

    本文主要介绍如何利用SQL*Plus的一些高级技巧来提升工作效率。 首先,我们来看如何使用SQL*Plus动态生成批量脚本。这个技巧在你需要对大量对象进行相同操作时特别有用。例如,删除SCOTT用户下的所有表。传统的做法...

    使用sqlplus生成txt或者html报表

    通过掌握这些技巧,IT专业人员可以更高效地利用SQLPlus进行数据处理和报表生成,提升工作效率,同时便于与其他团队成员共享和协作。无论是日常的数据分析,还是为管理层提供可视化报告,这都是十分实用的方法。

    sqlplus教程(中文)

    本教程旨在详细介绍SQLPlus的使用方法以及SQL语言在Oracle环境中的应用技巧。 一、SQLPlus的基础操作 1. 启动与退出:在命令行界面输入`sqlplus 用户名/密码@连接标识`启动SQLPlus,如`sqlplus scott/tiger@orcl`...

    SQLPLUS命令.rar

    七、SQLPLUS实用技巧 1. 使用`WHENEVER OSERROR`和`WHENEVER SQLERROR`处理错误。 2. `CONNECT`命令重新连接数据库。 3. `SHOW USER`查看当前所连接的用户。 4. `SHOW VARIABLES`或`SHOW PARAMETER`查看数据库参数。...

    完美解决linux下sqlplus无法使用退格及方向键

    如果你需要进一步增强SQL*Plus的使用体验,可以考虑安装`sqlplus`的增强版,如`sqldeveloper`,它是一个图形化的数据库管理工具,提供了更丰富的功能和更友好的界面。 总的来说,通过使用`rlwrap`,你可以在Linux下...

    sqlplus连接oracle问题

    ”所提供的内容,本文将详细阐述解决连接Oracle数据库时使用sqlplus工具遇到的问题时应关注的知识点。 首先,需要了解sqlplus是Oracle提供的一个命令行界面工具,它是用于与Oracle数据库进行交互的接口。在使用...

    sqlplus命令的使用大全

    本文将深入探讨SQLPlus的使用技巧,通过解析其功能,帮助读者更高效地进行数据库操作。 #### 1. 执行SQL脚本 SQLPlus支持直接运行存储在文件中的SQL脚本,有两种方法可以实现: - 使用`start`命令:`SQL> start ...

Global site tag (gtag.js) - Google Analytics