zoukankan      html  css  js  c++  java
  • oracle sqlplus命令详解

    涉及到的知识要点
    a、带有一个&的替换变量的用法
    b、带有两个&的替换变量用法
    c、define命令用法
    d、accept命令用法
    e、定制SQL*Plus环境
    f、在glogin.sql文件中保存定制结果
    g、sqlplus编辑命令


    a、带有一个&的替换变量的用法
    1)、使用带有一个&号的变量值来提示用户输入一个值。
    eg、
    SQL> SELECT     empno, ename, sal, deptno FROM  emp WHERE empno = &empno;
    输入 empno 的值:  7369
    原值    1: SELECT empno, ename, sal, deptno FROM  emp WHERE empno = &empno
    新值    1: SELECT empno, ename, sal, deptno FROM  emp WHERE empno = 7369

         EMPNO ENAME             SAL     DEPTNO
    ———- ———- ———- ———-
          7369 SMITH            8888         20

    2)、替换变量中的字串和日期值
    使用单引号标志替换变量中的日期和字串值。
    eg、
    SQL> SELECT ename, deptno, sal*12 FROM emp WHERE job='&job';
    输入 job 的值:  ANALYST
    原值    1: SELECT ename, deptno, sal*12 FROM emp WHERE job='&job'
    新值    1: SELECT ename, deptno, sal*12 FROM emp WHERE job='ANALYST'

    ENAME          DEPTNO     SAL*12
    ———- ———- ———-
    SCOTT              20     106656
    FORD               20      36000

    3)、运行时指定列名、表达式、文本
    SELECT empno, ename, job, &column_name
    FROM emp
    WHERE &condition
    ORDER BY &order_column;
    输入 column_name 的值:  sal
    原值    1: SELECT empno, ename, job, &column_name
    新值    1: SELECT empno, ename, job, sal
    输入 condition 的值:  sal>=3000
    原值    3: WHERE &condition
    新值    3: WHERE sal>=3000
    输入 order_column 的值:  ename
    原值    4: ORDER BY &order_column
    新值    4: ORDER BY ename

         EMPNO ENAME      JOB              SAL
    ———- ———- ——— ———-
          7902 FORD       ANALYST         3000
          7839 KING       PRESIDENT       5000
          7788 SCOTT      ANALYST         8888
          7369 SMITH      CLERK           8888

    b、带有两个&的替换变量用法
    使用带有两个&的变量可以使得该变量可以重复使用,而不必在每次使用时提醒用户输入。
    SQL> SELECT empno, ename, job, &&column_name FROM emp ORDER BY &column_name;
    输入 column_name 的值:  deptno
    原值    1: SELECT empno, ename, job, &&column_name FROM emp ORDER BY &column_name
    新值    1: SELECT empno, ename, job, deptno FROM emp ORDER BY deptno

         EMPNO ENAME      JOB           DEPTNO
    ———- ———- ——— ———-
          7782 CLARK      MANAGER           10
          7839 KING       PRESIDENT         10
          7934 MILLER     CLERK             10

    c、define命令用法
    创建CHAR类型的用户变量,当定义一个包含空格的变量时,要用单引号将该变量括起来。
    eg、
    SQL> define deptname = sales
    SQL> define deptname; –查看该变量
    DEFINE DEPTNAME = "sales" (CHAR)
    SQL> SELECT * FROM dept WHERE dname=UPPER('&deptname');
    原值    1: SELECT * FROM dept WHERE dname=UPPER('&deptname')
    新值    1: SELECT * FROM dept WHERE dname=UPPER('sales')

        DEPTNO DNAME          LOC
    ———- ————– ————-
            30 SALES          CHICAGO

    说明:一个变量将保持在被定义的状态,直到使用undefine命令将它清除或离开sql*plus。

    d、accept命令用法
    接收用户输入时,创建可定制的用户提示。
    eg、
    –提示你输入一个数值给dept,dept是个变量,可用define命令查看该变量
    SQL> accept dept prompt 'Provide the department name: '
    Provide the department name: Sales
    SQL> define dept; –查看该变量
    DEFINE DEPT = "Sales" (CHAR)
    SQL> SELECT * FROM dept WHERE dname = UPPER('&dept');
    原值    1: SELECT * FROM dept WHERE dname = UPPER('&dept')
    新值    1: SELECT * FROM dept WHERE dname = UPPER('Sales')

        DEPTNO DNAME          LOC
    ———- ————– ————-
            30 SALES          CHICAGO

    e、定制SQL*Plus环境
    使用SET命令来控制当前的会话。
    语法:SET system_variable value
    eg、SQL> set arraysize 20;
    可以使用SHOW命令来查看set设置。
    eg、SQL> show arraysize
    arraysize 20
    说明: set命令用法具体请看” oracle set命令详解.txt”

    f、在glogin.sql文件中保存定制结果
    glogin.sql文件包含在登录时需要执行的标准SET命令及其他命令,我们可以更改glogin.sql以包含其他SET命令。
    如:设置sqlplus环境的linesize为300,并让这个变量永久生效在$ORACLE_HOME/sqlplus/admin/glogin.sql(D:devoracleproduct10.2.0db_1sqlplusadmin)文件中添加如下内容:set linesize 300
    a
    g、sqlplus编辑命令
    1)、执行def命令查看编辑器的设置:
    SQL> def

    2)、总结下:
    l–列sql
    n–切换活动行(n代表行数字)
    a–活动行后增加(append)
    i–活动行后插入新行增加(input)
    c–替换(change)
    eg、c /emp_name/emp_age/
    del n–删除行n
    /–执行sql
    eg、
    SQL> select deptno, dname from dept;

        DEPTNO DNAME
    ———- ————–
            10 ACCOUNTING
            20 RESEARCH
            30 SALES
            40 OPERATIONS

    SQL> i  where deptno>20
    SQL> l
      1  select deptno, dname from dept
      2* where deptno>20
    SQL> /

        DEPTNO DNAME
    ———- ————–
            30 SALES
            40 OPERATIONS

    SQL> del 2
    SQL> l
      1* select deptno, dname from dept
    SQL> a  where deptno>30
      1* select deptno, dname from dept where deptno>30
    SQL> l
      1* select deptno, dname from dept where deptno>30
    SQL> /

        DEPTNO DNAME
    ———- ————–
            40 OPERATIONS

  • 相关阅读:
    Netty
    HttpClient 该知道一些概念
    Hibernate QBC 简单收集
    IUAP--单点登录
    js图片压缩和上传并显示
    vue移动端项目
    js自定义滚动条
    mysql5.7以上版本安装
    学习webpack
    学习es6
  • 原文地址:https://www.cnblogs.com/linjiqin/p/3152493.html
Copyright © 2011-2022 走看看