博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle sqlplus命令详解
阅读量:5909 次
发布时间:2019-06-19

本文共 3543 字,大约阅读时间需要 11 分钟。

涉及到的知识要点

a、带有一个&的替换变量的用法

b、带有两个&的替换变量用法
c、
d、accept命令用法
e、定制SQL*Plus环境
f、在glogin.sql文件中保存定制结果
g、编辑命令

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命令用法具体请看” 详解.txt”

f、在glogin.sql文件中保存定制结果

glogin.sql文件包含在登录时需要执行的标准SET命令及其他命令,我们可以更改glogin.sql以包含其他SET命令。
如:设置环境的linesize为300,并让这个变量永久生效在$ORACLE_HOME//admin/glogin.sql(D:\dev\oracle\product\10.2.0\db_1\sqlplus\admin)文件中添加如下内容: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

 

程序员的基础教程:

转载地址:http://csvpx.baihongyu.com/

你可能感兴趣的文章
一个for循环实现9*9乘法表
查看>>
sqlserver 日期操作的一些函数
查看>>
my07_lock-tables与single-transaction的区别
查看>>
my22_mydumper 使用总结
查看>>
Gradle for Android ( 构建变体 )
查看>>
浅析JAVA中堆内存与栈内存的区别
查看>>
redis高可用 - sentinel
查看>>
scala学习手记12 - 字段、方法和构造函数
查看>>
自定义圆形ImageView(解决Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();报错问题)
查看>>
[模板] 二分图博弈 && BZOJ2463:[中山市选2009]谁能赢呢?
查看>>
【转】centos 6.4 samba 安装配置
查看>>
Quaerus II13.0版本使用概述
查看>>
Uva 846 - Steps
查看>>
ASP.Net 请求响应流程简述
查看>>
iOS开发之基于parse的登录注册
查看>>
mysql主从复制读写分离
查看>>
Ace Admin 使用教程
查看>>
事件驱动模型
查看>>
WAP端 穿透问题和解决方法
查看>>
Booksort 启发式函数很重要h(s1)<=h(s2)+cost(s1,s2);
查看>>