涉及到的知识要点
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 = 7369EMPNO ENAME SAL DEPTNO
———- ———- ———- ———- 7369 SMITH 8888 202)、替换变量中的字串和日期值
使用单引号标志替换变量中的日期和字串值。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 106656FORD 20 360003)、运行时指定列名、表达式、文本
SELECT empno, ename, job, &column_nameFROM empWHERE &conditionORDER 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 enameEMPNO ENAME JOB SAL
———- ———- ——— ———- 7902 FORD ANALYST 3000 7839 KING PRESIDENT 5000 7788 SCOTT ANALYST 8888 7369 SMITH CLERK 8888b、带有两个&的替换变量用法
使用带有两个&的变量可以使得该变量可以重复使用,而不必在每次使用时提醒用户输入。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 deptnoEMPNO ENAME JOB DEPTNO
———- ———- ——— ———- 7782 CLARK MANAGER 10 7839 KING PRESIDENT 10 7934 MILLER CLERK 10…c、define命令用法
创建CHAR类型的用户变量,当定义一个包含空格的变量时,要用单引号将该变量括起来。eg、SQL> define deptname = salesSQL> 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: SalesSQL> 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 CHICAGOe、定制SQL*Plus环境
使用SET命令来控制当前的会话。语法:SET system_variable valueeg、SQL> set arraysize 20;可以使用SHOW命令来查看set设置。eg、SQL> show arraysizearraysize 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 300ag、sqlplus编辑命令1)、执行def命令查看编辑器的设置:SQL> def2)、总结下:
l–列sqln–切换活动行(n代表行数字)a–活动行后增加(append)i–活动行后插入新行增加(input)c–替换(change)eg、c /emp_name/emp_age/del n–删除行n/–执行sqleg、SQL> select deptno, dname from dept;DEPTNO DNAME
———- ————– 10 ACCOUNTING 20 RESEARCH 30 SALES 40 OPERATIONSSQL> i where deptno>20
SQL> l 1 select deptno, dname from dept 2* where deptno>20SQL> /DEPTNO DNAME
———- ————– 30 SALES 40 OPERATIONSSQL> del 2
SQL> l 1* select deptno, dname from deptSQL> a where deptno>30 1* select deptno, dname from dept where deptno>30SQL> l 1* select deptno, dname from dept where deptno>30SQL> /DEPTNO DNAME
———- ————– 40 OPERATIONS
程序员的基础教程: