zoukankan      html  css  js  c++  java
  • Oracle 学习笔记3 Sql Plus 命令

    一、SET 命令

    1、set 命令格式

     命令格式:set system_variable value

    system_variable:变量名

    value:变量值

    2、常用的变量名

    变量名 变量可选值 说明
    ARRAY[SIZE] 20(默认值)||N

    设置SQL*Plus一次从数据库获取的行数,有效值为1~5000大数值可提高查询和子查询的有效性,

    获取更多行,但需要更多的内存。当超过1000时,其效果不大

    AUTO[COMMIT] OFF||ON||IMM[EDIATE]

    控制Oracle对数据库的修改的提交,设置为ON时,在Oracle执行每个SQL命令或者PL/SQL块后

    对数据库自动提交修改;设置为OFF时,则制止自动提交,需要手工提交修改;IMMEDIATE功能

    等同于NO

    BLO[CKTERMINATOR] .||C 设置非字母数字字符,用于结束PL/SQL块。要执行时,必须发出RUN命令或者/命令
    CMDS[EP] ;||C||OFF||ON

    设置非字母数字字符,用于分隔在一行中输入的多个SQL*Plus命令,ON或者OFF控制

    在一行中是否能输入多个命令。ON时将自动将命令分隔符设为分号(;),其中C表示

    所置字符

    ECHO OFF||ON

    控制START 命令是否列出文件中的每个命令,若设置为ON,则列出命令,若为OFF,

    则直至列清单

    FLU[SH] OFF||ON

    控制输出送至用户的显示设备,设置为OFF时,运行操作系统做缓冲区输出;设置为

    ON时,不允许缓冲。仅当非交互方式运行命令文件时使用OFF,这样可减少I/O总数,

    从而改进性能

    HEA[DING] OFF||ON

    控制报表中列标题的打印。设置为ON时,在报表中打印列标题;设置为OFF时,禁止

    打印列标题

    LIN[SIZE] 80||N

    设置SQL*Plus 在一行中显示的最多字符总数,他还控制在TTITLE和BTITLE中对准中

    心的文本和右对齐文本。可定义LINESIZE为1至最大值,其最大值依赖于操作系统

    NEWP[AGE] 1||N 设置一页中的空行的数量,默认值为1
    NULL text

    设置表示空值【NULL】的文本,如果NULL没有文本,则显示空值。使用COLUMN

    命令中的NULL子句可控制NULL变量对该列的设置

    NUMF[ORMAT] 格式 设置显示数值的默认格式,该格式时数值格式
    PAGES[IZE] 10||N 设置从顶部标题至页结束之间的行数
    PAU[SE] OFF||ON||text

    设置SQL*Plus输出结果是否滚动显示,当设置为ON时,表示输出结果的每一页都暂

    停,用户按Enter键后继续显示。在设置PAUSE的值为ON后,若再设置字符串时,设

    置text值,则每次暂停都将显示该字符串

    RECSEP WR[APPED]||EA[CH]|OFF

    指定显示或打印记录分行符的条件。一个记录分行符是由RECSEPCHAR指定的字符组

    成的单行,空格为RECSEPCHAR的默认字符

    SERVEROUT[PUT] OFF||ON[SIZE N]

    控制SQL*Plus中的存储过程是否显示输出。若设置为OFF则禁止;若设置为ON则显示

    输出。SIZE设置缓冲输出的字节数,默认为2000,n不能小于2000或大于100万

    SHOW[MODE] OFF|NO

    控制SQL*Plus再执行SET命令时是否列出其新老值new或old的设置。其中ON值表示

    列出新老值

    SPA[CE] 1||N 设置输出列之间空格的数目,其最大值为10
    SQLCO[NTINUE] >;||文本 在一附加行上继续某个SQL*Plus命令时,SQL*Plus以该设置的字符序列进行提示
    SQLN[UMBER] OFF||ON

    为SQL命令和PL/SQL块的第二行和后继行设置提示。若为ON,则提示行号;若为

    OFF,则提示设置为SQLPROMRT的值

    TI[ME] OFF||ON

    控制当前日期的显示,若为ON则在每条SQL命令提示前显示当前时间,若为OFF则禁止显示当前时间

    TIMI[NG] OFF||ON

    控制时间统计的显示,若为ON则显示每一行运行的SQL命令或PL/SQL块的时间统计

    ,若为OFF则禁止每一个命令的时间统计

    UND[ERLINE] -||C||OFF|ON 设置用在SQL*Plus报表中下划线列标题的字符,ON或OFF将下划线设置为开或者关状态
    VER[IFY] OFF||ON

    控制SQL*Plus用值替换前后是否猎猪命令的文本,若为ON则显示文本,若为OFF则禁止列清单

     WRA[P]  OFF||ON  控制SQL*Plus是否阶段数据项的显示,若为OFF,则阶段数据项;
    若为ON则允许数据项缠绕到下一行

    3、PAGESIZE 变量  用于设置从顶部标题至页结束之间的行数

    首先查看PAGESIZE变量信息

    SQL>SHOW PAGESIZE

    然后修改PAGESIZE

    SQL> SET PAGESIZE 18

    最后查看效果

    SQL> select user_id,username,account_status from dba_users order by user_id  ;

    4、NEWPAGE变量  用于设置一页中空行的数量

    首先查看PAGESIZE变量信息

    SQL>SHOW NEWPAGE

    然后修改NEWPAGE

    SQL> SET NEWPAGE 5

    最后查看效果

    SQL> select user_id,username,account_status from dba_users order by user_id  ;

    5、LINESIZE变量  用于设置一行所显示的最多字符总数

    首先查看LINESIZE变量信息

    SQL>SHOW LINESIZE

    然后修改LINESIZE

    SQL> SET LINESIZE  100

    最后查看效果

    SQL> select user_id,username,account_status from dba_users order by user_id  ;

    6、PAUSE变量  用于设置输出结果是否滚动显示,默认是OFF

    首先设置为按页暂停

    SQL>SET PAUSE ON

    然后设置在每页暂停的最后一列有文字提醒

    SQL> SET PAUSE ‘你好’

    最后查看效果

    SQL> select user_id,username,account_status from dba_users order by user_id  ;

    7、NUMFORMAT变量  用于设置显示数值的默认格式

    掩码 说明 举例
    9 查询结果中数字替换格式中的掩码 999
    0 格式中的掩码屏蔽掉查询结果中的数字 999.00
    $ 在查询结果中的数字前添加美元前缀 ¥999
    S 为数字显示符号类型,通常用于显示查询结果中的正负数字 S999
    , 放置逗号,便于位数统计 99,999

    将SCOTT.EMP表中的SAL以千分符隔开,并在数字前面加美元前缀

    SQL>SET  NUMFORMAT $999,999,999.00

    最后查看效果

    SQL> select ename,job,sal from scott.emp;

    二、常用的SQL*Plus命令

    1、HELP命令,用于查询命令的标题、功能描述、缩写形式和参数选项

    格式:HELE|?[TOPIC]

    ?标志一个命令的部分字符,可以通过模糊搜索查询;

    topic参数表示将要查询的命令的完整名称

    2、DESCRIBE命令,用于查询指定数据对象的数据结构

    可以简写程DESC 

    格式:DESC[RIBE] object_name

    object_name表示将要查询的对象名称

    3、SPOOL命令,用于保存查询结果并方便打印

    格式:SPO[OL] [file_name[.ext]  [CRE[ATE] | REP[LACE] | APP[LACE] | APP[END]] |OFF|OUT]

    CRE[ATE] :表示创建一个新的脱机文件,这也是SPOOL命令的默认状态;

    REP[LACE]:表示替代已经存在的脱机文件;

    APP[END] :表示把脱机内容附加到一个已经粗在的脱机文件中;

    OFF|OUT :表示关闭SPOOL输出

    实例:

    SQL> spool c:emp.txt   创建输出的目标文件
    SQL> select empno,ename,sal from scott.emp where job='SALESMAN';  查询需要查询的信息

    EMPNO ENAME SAL
    ---------- -------------------- ----------
    7499 ALLEN 1600
    7521 WARD 1250
    7654 MARTIN 1250,
    7844 TURNER 1500

    SQL> spool off  关闭SPOOL命令,姜结果输出到创建的文件中

    3、DEFINE 命令  用来定义一个用户的变量并且可以分配给它一个CHAR值,

    格式:DEF[INE] [variable] |[bariable = text]

    variable 表示定义的变量名

    text 表示变量的CHAR值

    4、SHOW 命令  用来显示SQL*Plus系统变量的值或者SQL*Plus环境变量的值

    格式: SHO[W] option

    option 表示要显示的系统选项,常用的选项有ALL、PARAMETERS [parameter_name]、SGA、SPOOL、USER等;

    5、EDIT命令 用来编辑SQL缓冲区或者指定磁盘文件中的SQL语句或者PL/SQL块,

    格式:EDIT [file_name[.ext]]

    如果要执行SQL缓冲区中最近一条SQL语句,可以使用命令“/”来执行;

    6、SAVE命令 将最近一条SQL语句或者PL/SQL块保存到一个文件中;

    格式:SAVE file_name

    file_name 是保存的文件名称,需要指定路径

    7、GET命令  用于把一个SQL脚本文件的内容放进SQL缓冲区;

    格式:GET[FILE] FILE_NAME[.ext] [LIST|NOLIST]

    file_name  要检索的文件名称,如果省略了文件的扩展名,则默认文件的扩展名为SQL;

    LIST :指定文件的内容加载到缓冲区时显示的内容

    NOLIST:指定文件的内容加载到缓冲区时不显示文件的内容

    8、sSTART 和@命令  用于执行一个SQL脚本

    格式:STA[RT] {ur|file_name[.ext]}  [arg]

    @ {ur|file_name[.ext]}[arg]

    ur:表示要执行的SQL脚本文件的路径·

    {file_name[.ext]}  表示要执行的SQL脚本的文件名称

    [arg] 其他参数

    三、格式化查询结果

            SQL*Plus 工具提供了多个用于格式化查询结果的命令,使用这些命令可以实现设置列的标题、定义输出值的格式显示和显示宽度、为报表增加头标题和底标题、在报表中显示当前日期和页号等功能。

    1、COLUMN命令,该命令实现格式化查询结果、设置列宽度、重新设置列标题等功能。

            格式:COL[UMN] [column_name | alias | option]

            column_name  用于指定要设置的列的名称;

            alias  用于指定列的别名,通过它可以把英文列标题设置为汉字;

            option  用于指定某个列的显示格式,以下是常用的option选项的值及其说明;

    option选项的值 说明
    CLEAR 清楚指定列所设置的显示属性,从而恢复列使用默认的显示属性
    FORMAT 格式化指定的列
    HEADING 定义列标题
    JUSRIFY 调整列标题的对齐方式。默认情况下,数值类型的列为右对齐,其他类型的列为左对齐
    NULL 指定一个字符串,如果列的值为NULL,则由该字符串代替
    PRINT/NOPRINT 显示列标题或隐藏列标题,默认为PRINT
    ON/OFF 控制定义的显示属性的状态,OFF表示定义的所有属性都不起作用,默认是ON
    WRAPPED 当字符串的长度超过显示宽度时,将字符串的超出部分折叠到下一行显示
    WORD_WRAPPED 表示从一个完整的字符处折叠
    TRUNCATED 表示截断字符串的尾部

    示例1:

    将sal字段的格式修改为$999,999.00 的格式

    SQL> column sal format $999,999.00
    SQL> select empno,ename,sal from scott.emp;

    示例2

    将empno 字段名改为“雇员编号”,将ename 字段名改为“雇员姓名”,将sal字段名改为“薪水”

    SQL> column empno heading 雇员编号
    SQL> column ename heading 雇员姓名
    SQL> column sal heading 薪水

    示例3

    将comm字段中的NULL值修改为“空值”

    SQL> columnn comm null '空值'

    2、TTITLE和BTITLE命令,用来设置打印时每页的顶部和底部标题;

    格式:TTI[TLE] [printspec [text|variable]......] | [OFF|ON]

    text    用于设置输出结果的头标题(即报表头文字)

    variable  用于在头标题中输出相应的变量值

    OFF 表示禁止打印头标题

    ON  表示允许打印头标题

    printspec  用来作为头标题的修饰性选项。printspec选项的值及其说明如下:

    printspec选项的值 说明
    COL 指定在当前行的第几列打印头标题
    SKIP 跳到从下一行开始的第几行,默认为1
    LEFT 在当前行中左对齐打印数据
    CENTER 在当前行中间打印数据
    RIGHT 在当前行中右对齐打印数据
    BILD 以黑体打印数据

    示例1

    为sxott.salgrade表设置头标题与底标题,头标题设置为“销售情况排行榜”,底标题设置为“打印日期:2012年5月1日  打印人:东方”

    SQL> set pagesize 8
    SQL> ttitle left '销售情况排行表'
    SQL> btitle left '打印日期:2012年5月1日'
    SQL> btitle left '打印日期:2012年5月1日'  打印人:东方

    SQL> select * from scott.salgrade;

    销售情况排行表
    GRADE LOSAL HISAL
    ---------- ---------- ----------
    1 700 1200
    2 1201 1400
    3 1401 2000
    打印日期:2012年5月1日打印人:东方

    销售情况排行表
    GRADE LOSAL HISAL
    ---------- ---------- ----------
    4 2001 3000
    5 3001 9999

    打印日期:2012年5月1日打印人:东方

    示例2

    为sxott.salgrade表设置头标题与底标题,要求头标题与底标题都使用DEFINE命令定义的变量输出

    SQL> set pagesize 8
    SQL> define varT=' 雇员信息表'
    SQL> define varB=' 操作员:东方'
    SQL> ttitle left varT
    SQL> btitle left varB
    SQL> select empno,ename from scott.emp;

    示例3

    如果要取消头标题与底标题

    SQL> ttitle off
    SQL> btitle off
    SQL> select empno,ename from scott.emp;

  • 相关阅读:
    mac上python3安装HTMLTestRunner
    双目深度估计传统算法流程及OpenCV的编译注意事项
    深度学习梯度反向传播出现Nan值的原因归类
    1394. Find Lucky Integer in an Array
    1399. Count Largest Group
    1200. Minimum Absolute Difference
    999. Available Captures for Rook
    509. Fibonacci Number
    1160. Find Words That Can Be Formed by Characters
    1122. Relative Sort Array
  • 原文地址:https://www.cnblogs.com/TengQiuli/p/14174931.html
Copyright © 2011-2022 走看看