--让控制台输出信息set serveroutput on;--定义数值declare n number:=1;
v varchar2(10):='world';begin--控制台输出
dbms_output.put_line('hello'||n||v);end;
IF条件语句
set serveroutput on;declare emp_count number;beginselectcount(*)into emp_count from emp where sal>=3000;if emp_count=1then
dbms_output.put_line('有1名员工的基本薪资大于等于3000');elseif emp_count>1then
dbms_output.put_line('有'||emp_count||'名员工的基本薪资大于等于3000');else
dbms_output.put_line('没有员工的基本薪资大于等于3000');endif;endif;end;
CASE WHEN 流程控制语句
set serveroutput on;declare emp_count number;beginselectcount(*)into emp_count from emp where sal>=3000;case emp_count
when0then dbms_output.put_line('没有员工的薪资大于3000');when1then dbms_output.put_line('有1名员工的薪资大于3000');when2then dbms_output.put_line('有2名员工的薪资大于3000');when3then dbms_output.put_line('有3名员工的薪资大于3000');else dbms_output.put_line('超过3名员工的薪资大于3000');endcase;end;
循环语句
无条件循环 loop
set serveroutput on;declare g_id number:=2;
g_losal number;
g_hisal number;beginloopif(g_id>4)thenexit;endif;select losal,hisal into g_losal,g_hisal from salgrade where grade=g_id;
dbms_output.put_line('ID为'||g_id||'的最低薪资为:'||g_losal||',最高薪资为:'||g_hisal);
g_id:=g_id+1;endloop;end;
while 循环
set serveroutput on;declare g_id number:=2;
g_losal number;
g_hisal number;beginwhile g_id<5loopselect losal,hisal into g_losal,g_hisal from salgrade where grade=g_id;
dbms_output.put_line('ID为'||g_id||'的最低薪资为:'||g_losal||',最高薪资为:'||g_hisal);
g_id:=g_id+1;endloop;end;
for 循环
set serveroutput on;declare g_losal number;
g_hisal number;beginfor g_id in2..4loopselect losal,hisal into g_losal,g_hisal from salgrade where grade=g_id;
dbms_output.put_line('ID为'||g_id||'的最低薪资为:'||g_losal||',最高薪资为:'||g_hisal);endloop;end;