oracle的boolean变量和替代变量

boolean和替代变量都只能在PL/SQL脚本中使用,它们不能运用在表列数据中。

1、布尔类型(boolean) 
boolean类型主要表达真或假。可以为boolean类型变量赋值truefalse
主要用于PL/SQL脚本的流程控制。

示例:
declare 
v1 boolean;
begin 
v1:=1>2;
dbms_output.put_line(v1);
end; 

问题:打印的结果是什么,是truefalse10
回答:都不对。运行时得到错误信息:调用'PUT_LINE' 时参数个数或类型错误。这是因为在脚本中不能直接打印boolean类型的值,所以只能在脚本中使用if语句来判断。

修改示例:
declare 
v1 boolean;
begin 
v1:=1>2;
if(v1)then 
     dbms_output.put_line('true
');
else 
    dbms_output.put_line('false
');
end if;
end; 

打印:false

2、替代变量
语法:&替换内容
作用:提供用户输入的界面,在用户输入数据以后,先替换PL/SQL脚本,再编译执行。

案例一:输入年龄,然后打印出来
SQL> declare
2   v_age number(3);
3 begin
4    v_age:=&age
;
5    dbms_output.put_line('your age is'||v_age);

6 end;
7 /

输入 年龄 的值: 20
原值    4:   v_age:=&age;
新值    4:   v_age:=20;

说明:在用户输入“20”以后,将“&年龄替换为了“20”。于是脚本的源代码发生了改变:
declare
v_age number(3);
begin
v_age:=20;
dbms_output.put_line('your age is
 '||v_age);
end;

所以“&”变量并不是一个真正的变量,它不能保存任何内容,只是提供一个字符串替换的功能。
案例二:用户输入姓名并打印。

declare
v_name varchar2(3);
begin
v_name:=&name
;
dbms_output.put_line('your name is'||v_name);

end;
问题:如果用户输入“a”,程序是否能够运行,如果能,打印的结果是什么?
分析:当用户输入“a”,上面代码就是:

declare
v_name varchar2(3);
begin
v_name:=a;
dbms_output.put_line('your name is
 '||v_name);
end;
由于“a”前后没有单引号,所以会被当作标识符即当作变量名。但是a这个变量又没有定义。所以一定会提示如下的错误:必须说明标识符'A'

解决的方法:在“&”前后加上单引号,即:
declare
v_name varchar2(3);
begin
v_name:='&name
';
dbms_output.put_line('your name is '||v_name);

end;
/

替代变量小结:
·替代变量的作用主要是为匿名块提供一个数据录入的界面。
·替代变量只是完成字符串替换的功能,不能保存值。
·如果替代变量是字符串,则必须加上单引号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值