plsql中的if
FOR m in 1..10 loop
.............................
end loop
等等
2. 在plsql中,if then紧接着一个if then中间没有执行语句怎么理解
凡是这种if的嵌套,表示要满足上层的if条件才能进入,比如说
if A then
if B then
if C then
end if
end if
end if
就是满足了A才能进入if B的判断,满足了B(或者说满足A和B)才能进入C的判断。同样的,你的代码中只有满足了flag_missed_target=0的判断,才能进入▲x>0的判断,下面的都是一样的。当然,如果是
if A then
XXX...
if B then
end if
end if
表示满足A之后先执行XXX,之后才进行if B判断,这个XXX是根据你的需求写的,不一事实上非得存在。
3. 在PL/SQL中怎样判断查询的结果是否为空
1、只有一个查询结果的查询:
select min(to_char(b.arrive_date,'yyyymmdd')||lpad(b.arrive_time,6,0)||c.xs_mc)
into vtmpstr
from tb_evt_bag_mail_rela a, tb_evt_route_bag_rela b, tb_jgjm c
where a.mail_num = vmail_num
。。。。。。
对这个查询,只需判断变量vtmpstr是否为空就可以了,即:
if vtmpstr is null then
注意:查询中用聚合函数才可以这样用,如果直接取一个值,又没有结果,则会出错跳出模块,跑到例外处理那儿去了,如下面语句:
select city_name into vcity_jdj
from tb_county
where xs_code=substr(vrcv_area,1,4);
如果没有查询结果,或者多个查询结果,都会出错跑到例外处理那儿,所以应该写成下面格式:
select min(city_name) into vcity_jdj
from tb_county
where xs_code=substr(vrcv_area,1,4);
2、游标的查询结果:
OPEN cur_get_trans(vin_date,vmail_num);
LOOP
FETCH cur_get_trans
INTO vdeal_date,vdeal_time,vdeal_org_code,vlabel_strip,
vmway_code,vflight_name,vdepart_date,vdepart_time;
--判断查询结果
if cur_get_trans%found then
。。。
else
。。。
end if;
或者退出循环处理,即:
OPEN cur_get_trans(vin_date,vmail_num);
LOOP
FETCH cur_get_trans
INTO vdeal_date,vdeal_time,vdeal_org_code,vlabel_strip,
vmway_code,vflight_name,vdepart_date,vdepart_time;
EXIT WHEN cur_get_mail%NOTFOUND;
--处理有结果的查询
END LOOP;
--处理无结果的查询
--注意,有查询结果处理完毕也会执行到此处,所以要区分上面是否进行过有结果的处理。
CLOSE cur_get_trans;
===================================================================
附:
1、游标相关的4个语句:
declare(声明)、open(打开)、fetch(取数)、close(关闭)。
2、游标相关的4个属性:%isopen, %found, %notfound,和 %rowcount
(1)%Isopen:布尔型,用于检测游标是否已经打开。如果游标已经打开,返回true,否则返回false。
(2)%found:布尔型,判断最近一次执行fetch语句后,是否从缓冲区中提取到数据,返回true,否则返回false。
(3)%notfound:与%found相反。
(4)%rowcount:数值型,返回到目前为止已经从游标缓冲区提取数据的行数。在fetch语句没有执行之前,该属性值为0。
使用隐式游标%found属性,sql%found;
使用显示游标%found属性,cur_get_trans%found。
4. plsql怎么使用if语句达成多表的条件搜索,共同显示
直接在where条件里面筛选不行吗?
c_serviceentity与c_circuit时条件加上ABSTRACTENTITY_ID=108
c_serviceentity与c_port时条件加上ABSTRACTENTITY_ID=105;
如果一定要用IF,可以定义个变量
if 变量=108 。。。
c_serviceentity与c_circuit时条件加上ABSTRACTENTITY_ID=变量。。
...
...
..
5. sql 中的if 判断 语句应该怎么写
sql中的if语句写法和java中差不多,都是先定义变量再使用变量进行判断。由于你的提问不是很清晰,我就自己的看法解答下你的问题:
如果你指的是查询条件的话:select
需要查询的字段,若为所有字段这里是*
from
表名
where
查询条件例如name='llo'
and
age='50';
如果你指的是sql代码的话:
变量名
Number:=0;
变量名
Number:=0;Num为属性
Select
字段名
Into
变量名
from
表名
就不多写了,条件同查询条件结束时要有;号注意英文字符,这样会把查询到的字段值赋给变量,当使用if语句进行判断时,取到变量名进行判断就好。if判断语句同:if(变量名!=0)
then
返回true时需要运行的语句
end
if;
--为注释
6. plsql编程判断语句怎么
if ................ then
....................
elsif ---- then
..............
end if;