Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96788
  • 博文数量: 35
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 302
  • 用 户 组: 普通用户
  • 注册时间: 2017-02-07 17:04
个人简介

不积跬步无以至千里,每天进步一点点~

文章分类

全部博文(35)

文章存档

2018年(3)

2017年(32)

我的朋友

分类: Oracle

2017-11-09 17:15:09

1.替代变量:
select * from emp where sal>&put;
范例:
查询一个雇员编号、姓名、职位、雇佣日期、基本工资,查询的雇员姓名,由用户输入
select empno,ename,job,hiredate,sal from emp where ename=upper('&name');
范例:
根据雇员姓名的关键字(由用户输入)查询雇员编号、姓名、职位、雇佣日期、基本工资。
select empno,ename,job,hiredate,job from emp where ename like '%&input%'
范例:
由用户输入雇佣日期,要求查询出所有早于此雇佣日期的雇员编号、姓名、职位、雇佣日期、基本工资
select empno,ename,job,hiredate,sal from emp 
where hiredate 范例:输入多个替代变量
输入查询雇员的职位及工资(高于输入工资)信息,而后显示雇员编号、姓名、职位、雇佣日期
基本工资。
select empno,ename,job,hiredate,sal from emp where job=upper('&inputjob') and 
sal>&input2;

2.替代变量的详细说明:
在select子句之中使用替代变量
范例:
由用户决定最终所查询出来的列,以及设置的限定条件内容
select &inputcol from emp where deptno=&inputemp;
在from 子句中使用替代变量
select * from &inputtab;
在order by 子句中使用替代变量
select empno,ename,job,hiredate,sal from emp
where deptno=20
order by &inputOrder DESC;
在group by 子句之中使用替代变量
select &&inputGroupby,sum(sal),avg(sal)
from emp
group by &inputGroupby;
注意:在此范例中,使用‘&&’替代变量,只要求在第一次使用它时进行用户输入。简化了输入,
又防止两次输入不一致的情况。
但是现在也有可能出现一个问题,如果这个时候输入的不再是job,而是deptno,那么就无法输入了。
永远是job了。有两种方式解决此问题:一种是关闭窗口重新、第二种是执行Undefine命令
undefine inputGroupby;
当然,如果不需要任何替代变量的定义。那么可以输入set define off;

3.定义替代变量
在oracle中除了可以使用‘&&’定义替代变量之外,还可以使用define命令来定义替代变量,用户可以利用
define 命令创建一个字符型的替代变量,而且此种方式定义的替代变量会一直保存到一个session的操作
结束或者是遇见undefine清除变量。
  define 命令格式:
  define 替代变量=值
  范例:define inputdname='accouting'
  查询替代变量内容:define inputdname;
  使用define 定义的替代变量:select * from dept where dname='&inputdname';
  Undefine命令格式:
    清除inputdname替代变量内容:undefine inputdname;
4.ACCEPT指令:
ACCEPT命令格式:
  ACCEPT替代变量名称[数据类型][FORMAT格式][PROMPT'提示信息'][HIDE]
ACCEPT语法中各个参数的作用如下所示:
  替代变量名称:存储值的变量名称,如果该变量不存在,则由SQL*PLUS创建该变量,
  但是在定义此替代变量名称前不能加上‘&’;
  数据类型:可以是number、varchar 或date类型数据
  FORMAT格式:指定格式化模型,例如A10或9.99;
  PROMPT提示信息:用户输入替代变量时的提示信息;
  HIED:隐藏输入内容,例如在输入密码时没有显示。
注意:使用ACCEPT命令要结合sql脚本使用。
范例:观察ACCEPT操作形式;
  ACCEPT input PROMPT 请输入雇员姓名:hide
  select * from emp where ename=upper('&input');
  @C:\Users\Administrator\Desktop\test.sql
范例:使用FORMAT
ACCEPT input FORMAT A5 PROMPT 请输入雇员姓名:
  select * from emp where ename=upper('&input');
  
ACCEPT input date FORMAT 'YYYY-MM-DD'  PROMPT '请输入日期:'
  select * from emp where hiredate=to_date('&input','yyyy-mm-dd');
  





阅读(1938) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~