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;