zoukankan      html  css  js  c++  java
  • Oracle学习笔记--第3章 使用sql*plus工具

    使用sql*plus工具

    1.sqlplus连接方式示例

        sqlplus system/123[as sysdba];

    2.查看表结构命令;desc[ribe]

    e.g.      desc scott.emp;

    3.使用sql*plus快速编辑sql语句

    命  令

    说  明

    A[PPEND] text

    将text附加到当前行之后

    C[HANGE] /old/new

    将当前行中的old替换为new

    C[HANGE] /text/

    删除当前行中指定的text文本

    CL[EAR] BUFF[ER]

    清除缓存区中的所有行

    I[NPUT]

    插入不定数量的命令行

    I[NPUT] text

    插入指定的文本text

    DEL

    删除当前行

    DEL n

    删除第n行(行号从1开始)                

    DEL m n

    删除从第m行到第n行之间的命令行

    L[IST]

    列出缓冲区中所有的行

    L[IST] n

    列出第n行

    R[UN]或 /

    显示缓冲区中保存的语句,并运行这些语句

    n

    将第n行作为当前行

    n text

    使用text文本替代第n行信息

    0 text

    在第一行之前插入text文本

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    4.save命令将缓冲区内容保存到文件

    使用SAVE命令可以将当前缓冲区的内容保存到文件中,这样,即使缓冲区中的内容被覆盖,也保留有前面的执行语句。SAVE命令的语法如下所示:
    SAV[E] [ FILE ] file_name [ CRE[ATE] | REP[LACE] | APP[END] ]
    语法说明如下。
    file_name:表示将SQL*Plus缓冲区的内容保存到由file_name指定的文件中。
    CREATE:表示创建一个file_name文件,并将缓冲区中的内容保存到该文件。默认。
    APPEND:如果file_name文件已经存在,则将缓冲区中的内容追加到文件内容之后;否则创建该文件。

    REPLACE:如果file_name文件已经存在,则覆盖文件内容,否则创建该文件。

    SQL>save scott_emp_query.sql;

    指定append或replace选项,再次保存。

    SQL>save scott_emp_query.sql append;

    5.使用get命令读取文件内容到缓冲区

    使用GET命令的语法如下:
    GET [ FILE ] file_name [ LIST | NOLIST ]
     
    file_name:表示一个指定文件,将该文件的内容读入SQL*Plus缓冲区中。
    LIST:列出缓冲区中的语句。
    NOLIST:不列出缓冲区中的语句。
     
    例:将scott_emp_query.sql文件的内容读入到缓冲区中,并且输出和显示这些内容,如下:
    SQL> GET scott_emp_query.sql LIST
    效果显示:
               SELECT empno , job , mgr , sal , deptno
               FROM scott.emp
         where empno > 7800
    将文件的内容读入到缓冲区后,就可以使用编辑命令对这些内容进行操作了。
    6.start命令(@命令)读取并运行文件内容
      STA[RT] { url | file_name }
          SQL>start scott_emp_query.sql
     或  SQL>  @  scott_emp_query.sql
    7.编辑命令edit
    使用EDIT命令,可以将SQL*Plus缓冲区的内容复制到一个名为afiedt.buf的文件中,然后打开这个文件,并编辑(用记事本)。语法形式如下:
    ED[IT] [ file_name ]
    其中,file_name默认为afiedt.buf,也可以指定一个其他的文件。
     
    SQL>edit
     
    8.使用 spool 命令复制输出结果到文件
    使用SPOOL命令实现将SQL*Plus中的输出结果复制到一个指定的文件中,或者把查询结果发送到打印机中,直到使用SPOOL OFF命令为止。SPOOL命令的语法如下:
    SPO[OL] [ file_name [ CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT ]
    语法说明如下。
    file_name:指定一个操作系统文件。
    CREATE:创建一个指定的file_name文件。
    REPLACE:如果指定的文件已经存在,则替换该文件。
    APPEND:将内容附加到一个已经存在的文件中。
    OFF:停止将SQL*Plus中的输出结果复制到file_name文件中,并关闭该文件。
    OUT:启动该功能,将SQL*Plus中的输出结果复制到file_name指定的文件中。
     
    SQL>spool scott_emp_outcome.txt append
    SQL>/
    9.使用临时变量&符号
    SQL>select empno,ename from scott.emp  where empno<&temp;

    输入 temp 的值:  7600

    原值    1: select empno,ename from scott.emp  where empno<&temp

    新值    1: select empno,ename from scott.emp  where empno<7600

         EMPNO ENAME

    ---------- --------------------      

      7369 SMITH      

      7499 ALLEN      

      7521 WARD      

      7566 JONES

     9.2使用临时变量&&符号,避免为同一变量两次赋值信息提示
    select &&colomn_name ,deptno from scott.emp where &&colomn_name>=7800;
     
    10.使用verifyset define命令
    set verify[on|off]指定是否输出原值新值信息
    set define用于指定一个字符作为变量字符(&除外)
    例子:使用set define将变量定义字符设置为@,并执行一个查询
    SQL>set define '@'
    SQL>select empno,deptno from scott.emp where empno = @temp; 
    在脚本文件中也可以使用临时变量
    11.使用已定义变量

    命令

    说明

    DEF[INE]--对应undefine

    显示所有的已定义变量

    DEF[INE] variable

    显示指定变量的名称、值和其数据类型  

    DEF[INE] variable = value

    创建一个CHAR类型的用户变量,并且为该变量赋初始值

    SQL> define
    DEFINE _DATE           = "18-11月-13" (CHAR)
    DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR)
    DEFINE _USER           = "SYS" (CHAR)
    DEFINE _PRIVILEGE      = "AS SYSDBA" (CHAR)
    DEFINE _SQLPLUS_RELEASE = "1102000100" (CHAR)
    DEFINE _EDITOR         = "Notepad" (CHAR)
    DEFINE _O_VERSION      = "Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
    DEFINE _O_RELEASE      = "1102000100" (CHAR)
    DEFINE _RC             = "0" (CHAR)
    DEFINE COLOMN_NAME     = "5" (CHAR)
    DEFINE COLOMN_NAME1    = "1" (CHAR)

    例子:
    SQL> define temp=7800
    SQL> define temp
    DEFINE TEMP            = "7800" (CHAR)
    SQL>select empno from scott.emp where empno>=&temp;
     
    12.使用accpet命令
    ¤使用ACCEPT命令也可以定义变量,并且定制一个用户提示,用于提示用户输入指定变量的数据。
    ¤ACCEPT命令的语法如下:
    |ACC[EPT] variable [ data_type ] [ FOR[MAT] format ] [ DEF[AULT] default ]
    |[ PROMPT text | NOPR[OMPT] ] [ HIDE ]
    format格式包括A15(15个字符),9999(4个数字),DD-MON-YYYY(日期)
    例:
    SQL>accept temp number format 9999 prompt '请输入一个empno值:'
     
    SQL>select empno,deptno from scott.emp where empno = &temp;
     
  • 相关阅读:
    NTP on FreeBSD 12.1
    Set proxy server on FreeBSD 12.1
    win32 disk imager使用后u盘容量恢复
    How to install Google Chrome Browser on Kali Linux
    Set NTP Service and timezone on Kali Linux
    Set static IP address and DNS on FreeBSD
    github博客标题显示不了可能是标题包含 特殊符号比如 : (冒号)
    server certificate verification failed. CAfile: none CRLfile: none
    删除文件和目录(彻底的)
    如何在Curl中使用Socks5代理
  • 原文地址:https://www.cnblogs.com/xiaoliu66007/p/3429389.html
Copyright © 2011-2022 走看看