22.PLSQL中的程序結構語法

假設有下表emp:


一、條件分支

1.1 找到empno爲7499的員工,如果其sal小於2000,就直接加到2000

declare
  v_sal number;
begin
  select sal into v_sal from emp where empno=7499;
  if v_sal<2000 then
   update emp set sal=2000 where empno=7499;
  end if;
end;
/

1.2 找到empno爲7839的員工的ename和sal,根據sal的級別輸出不同的字符串

declare
   v_ename emp.ename%type;
   v_sal emp.sal%type;
begin
   select ename,sal into v_ename,v_sal from emp where empno=7839;
   if v_sal>= 5000 then
     dbms_output.put_line(v_ename||'薪水高');
   elsif v_sal < 2000 then
     dbms_output.put_line(v_ename||'薪水低');
   else
     dbms_output.put_line(v_ename||'薪水一般');
   end if;
end;
/

二、選擇分支

2.1 找到empno爲7839的員工的ename和sal,根據sal的級別輸出不同的字符串

declare
   v_ename emp.ename%type;
   v_sal emp.sal%type;
begin
   select ename,sal into v_ename,v_sal from emp where empno=7839;
   case 
   when v_sal>=5000 then
     dbms_output.put_line(v_ename||'薪水高');
   when v_sal<2000 then
     dbms_output.put_line(v_ename||'薪水低');
   else
     dbms_output.put_line(v_ename||'薪水一般');
   end case;
end;
/

三、循環結構

3.1 loop循環

declare
  v_num number:=1;
begin 
  loop
    dbms_output.put_line(v_num);
    exit when v_num=10;
    v_num:=v_num+1;
  end loop;
end;
/

3.2 while循環

declare
  v_num number:=1;
begin
  while v_num<10 loop
    dbms_output.put_line(v_num);
    v_num:=v_num+1;
  end loop;
end;
/

3.3 for循環

declare
  v_num number:=1;
begin
  for  v_num in 1..10 loop
    dbms_output.put_line(v_num);
  end loop;
end;
/

四、GOTO語句

declare
  v_num number:=1;
begin
  for v_num in 1..10 loop
    if v_num >6 then
      goto endtag;
    end if;
  dbms_output.put_line(v_num);
  end loop;
  <<endtag>>
  dbms_output.put_line('循環結束');
end;
/





























































發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章