在Oracle数据库里SQL*Plus变量的使用

SQL*Plus中变量的使用

SQL*Plus中的变量在整个启动期间一直有效,变量可以用在SQL语句、PL/SQL块以及文本文件中。

1.用户自定义的变量

两种类型:

1. 自定义变量
	&变量名				//每次遇到&变量,都要输入变量值1.select语句中使用两个变量
	select ename , sal from &table_name where ename='&'
	&&变量名				//第一次遇到需要输入,以后不再需要
2. 需要事先定义,且需要提供初值
	define 变量名 = 变量值

3. 删除变量
	undefine

例1.在select语句中使用两个变量

select ename , sal from &table_name where ename='&name'

在这里插入图片描述

例2. 使用变量在SQL*Plus中创建2个用户,初始化密码均为123456,并给用户赋予create session权限,并验证所有用户是否可以正常登陆使用。

create user &user identified by 123456

例3. 显示当前已经使用define命令定义的变量与其变量值,使用define自定义两个变量,将‘SCOTT’变量值赋给name变量,将’tiger’变量值赋给psw变量,再次查看当前已经自定义的变量内容

define
define name = SCOTT
define psw = tiger

例4. 使用name变量和psw变量登陆oracle数据库b

conn &name/&psw

例5. 删除已经自定义变量name和psw

undefine name
undefine psw
//undefine命令用于取消一个变量的定义
2. 参数变量

参数变量不需要事前定义,可以直接使用。参数变量一般使用在脚本类的文本文件中,使用@、get将其调入缓冲区使用

格式:

@ 文件名 参数1 参数2 参数3 ...		//对应&1、&2、&3

例6. 在当前目录下创建脚本文件,名为test.sql,内容为:

select ename , job from emp where deptno = &1 and sal >&2;

例7. 在scott用户下,调用并执行test脚本,参数1设置为20,参数2为2000,查看最后执行结果。

@ test

在这里插入图片描述

3. 与变量有关的交互式命令

SQL*Plus还提供了几条交互式命令,主要有:

prompt			//用来在屏幕上显示指定的字符串,字符串不需要单引号限定
	prompt I‘m a programmer

accept			//用于接收用户的键盘输入,并把输入数据存放到指定的变量中
	accept 变量名 变量类型 prompt 提示信息 选项			//变量类型:数字型、字符型、日期型
											//选项包括:hide、default
pause			//使当前的执行暂时停止,在用户输入回车键后继续。

例8. 从键盘输入一个数字型数据到变量d,在输入之前显示指定的提示信息,并为变量指定默认值为 0 ,这样如果在输入数据时直接回车,那么变量的值就是默认值。

accept d number prompt pls_input _value_of_d: default 0 //prompt后面的字符串之间尽量不能有空格
//查看此变量d的值:define

例9. 交互式命令的用法,将下列文本写入当前目录下,名为:test.sql,试执行该脚本文件。

prompt 工资统计现在开始
accept dno number prompt 请输入部门号: default 0
pause 请输入回车键开始统计……
select ename ,sal from scott.emp where deptno = &dno

例10. 更新例9脚本功能,将输出结果生成一个报表文件,文件名为:output.lst

prompt 工资统计现在开始
accept dno number prompt 请输入部门号: default 0
pause 请输入回车键开始统计……
spool output
select ename ,sal from scott.emp where deptno = &dno
spool off
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值