Oracle 控制语句

set serverout on; ----这个只能在SQL PLUS里面使用,意思是在窗口里显示服务器输出信息。
declare n number:=1; ---定义一个变量(当然可以连续定义多个变量)
        v varchar2(20):='百零';
        n2 number:=5;
begin
  dbms_output.put_line('这是'||n||v||n2); ----随便在什么地方,只要是BEGIN和END之间,就可以使用DBMS_OUTPUT.PUT_LINE(output)
end;

---- if          then        end if
set serveroutput on;
declare scount number;
begin
  select count(*) into scount from student where score>80; ----into 赋值
  if scount>0 then 
    dbms_output.put_line(''||scount||'个学生成绩大于80分');
  end if;
end;


---- case when  then
set serveroutput on;
declare scount number;
begin
  select count(*) into scount from student where score>80;
  case scount
    when 0 then  dbms_output.put_line('有0个学生成绩大于80分');
    when 1 then  dbms_output.put_line('有1个学生成绩大于80分');
    when 2 then  dbms_output.put_line('有2个学生成绩大于80分');
    when 3 then  dbms_output.put_line('有3个学生成绩大于80分');
    when 4 then  dbms_output.put_line('有4个学生成绩大于80分');
  end case;
end;



---- loop循环(无条件,所以要ziji定义退出的条件)
set serveroutput on;
declare siid number:=1;
        sname varchar2(20);
        sscore varchar2(20);   
begin
  loop
    if(siid>4) then
      exit;
    end if;
    select s.name,s.score into sname,sscore from student s where s.id=siid;
    dbms_output.put_line(siid||'号的成绩和名字是:'||sscore||sname);
    siid:=siid+1;
  end loop;
end;


---- while循环
set serveroutput on;
declare siid number:=1;
        sname varchar2(20);
        sscore varchar2(20);   
begin
   while(siid<5) loop
    select s.name,s.score into sname,sscore from student s where s.id=siid;
    dbms_output.put_line(siid||'号的成绩和名字是:'||sscore||sname);
    siid:=siid+1;
  end loop;
end;


----for 循环 (参数用..链接)
set serveroutput on;
declare sname varchar2(20);
        sscore varchar2(20);   
begin
   for s_id in 1..4 loop
    select s.name,s.score into sname,sscore from student s where s.id=s_id;
    dbms_output.put_line(s_id||'号的成绩和名字是:'||sscore||sname);
  end loop;
end;

 

转载于:https://www.cnblogs.com/AnswerTheQuestion/p/6986792.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值