替代变量
说白了就是用键盘 输入变量
select ename, job, sal ,hiredate from emp where sal>&inputsal;
还可以输入字符串
select empno, ename, job ,hiredate ,sal from emp where ename=&inputename;
最好是这样写:
select empno, ename, job ,hiredate ,sal from emp where ename=’&inputename‘;
你会考虑大小写问题吗?
select empno, ename, job ,hiredate ,sal from emp where ename=UPPER(’&inputename‘);
一般,只要不考虑大小写的系统,几乎都是将输入的数据全部 统一变为大写或小写。
范例:根据雇员姓名的关键字(由雇员)
select empno, ename, job ,hiredate ,sal from emp where ename like '%&inputkeyword%'
日期型的数据
select empno,ename ,job,hiredate , sal from emp where hiredate <to_date('&inputhirdate','yyyy-mm-dd')
两个替代变量
select empno,ename ,job,hiredate , sal from emp where job=UPPER('&inputjob') AND sal>&inputsal
下面来替代变量的详细说明:
在之前只是在where子句之中使用替代变量,但是在SQL的
select * from emp where deptno=&inputDeptno;
变量查表
select * from &inputTableName;
在oracle by子句中,
select empno,ename, job, hiredate , sal from emp where deptno=20 order by &inputOrderByColumn DESC
在group by 子句中使用替代变量
select &inputGroupByColumn,sum(sal) from emp group by &inputGroupByColumn
定义替代变量
如果不希望输入“&&”可以使用define命令定义。
定义一个替代变量
DEFINE inputdname='ACCOUNING'
ACCEPT指令:
可以指定替代变量的提示信息。
如果现在要想使用ACCEPT指令,那么必须结合脚本文件完成。
这个操作形式,为了方便起见。
ACCEPT inputEname PROMPT '请输入要查询信息的雇员姓名:' SELECT empno,ename, job ,hiredate , sal from emp where ename=UPPER('&inputEname')
将上面三条语句,保存到文件夹,以.sql保存,
在命令窗口,输入"@d:\QQQ.sql"
就会执行文件里的sql语句。
ACCEPT inputGroupBYcolumn PROMPT '请输入要分组的字段:' SELECT empno,sum(sal) from emp GROUP BY &inputGroupBYcolumn
这个可以根据字段分组
加hide就可以隐藏你的sql语句:
ACCEPT inputGroupBYcolumn PROMPT '请输入要分组的字段:' hide SELECT empno,sum(sal) from emp GROUP BY &inputGroupBYcolumn
ACCEPT inputGroupBYcolumn PROMPT '请输入要分组的字段:' FORMAT a10 SELECT empno,sum(sal) from emp GROUP BY &inputGroupBYcolumn
此时只能输入10个长度的数据
控制日期的输入:
ACCEPT inputDate DATE FORMPT 'YYYY-MM-DD' prompt '请输入要查询的日期:' select empno ,ename, job , hiredate from emp where hiredate=to_date('&inputDate','yyyy-mm-dd')
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步