declare V_name emp.ename%TYPE :='SMITH';--定义成emp.ename类型,其初始化值必须在ename中存在 V_job varchar (20) :='salesman'; V_sal number ; rec emp%rowtype; begin select * into rec from emp where ename = V_name; DBMS_OUTPUT.PUT_LINE('姓名:'||rec.ename||'工资:'||rec.sal||'工作时间:'||rec.hiredate); select ename into V_name from emp where ename = 'WARD'; --dbms_output.put_line('姓名:'||V_name); if V_name= 'WARD' then DBMS_output.put_line('姓名:'||V_name||rec.sal); end if; if V_name='JONES' then DBMS_output.put_line('Jones今天来上班了'); else DBMS_output.put_line('Jones今天玩的真happy'); end if; if V_name = 'SCOTT' then DBMS_output.put_line('scott今天来上班了'); elsif V_name = '十大队' then DBMS_output.put_line('ward今天来上班了'); else DBMS_output.put_line('今天没人上班,公司空空如也'); end if; end; --case的 应用练习 V_APPraisal :=的值为 case语句的返回值 declare V_grade char(1) :='A'; V_APPraisal varchar2(20); begin V_APPraisal := --case内部不用加 ; 只有在结束时再加. case V_grade when 'A' then 'excellent' when 'B' then 'vary good' when 'C' then 'GOOG' else 'no such grade' end; DBMS_OUTPUT.PUT_LINE('Grade:'||V_grade||' Appraisal: '|| V_APPraisal); end; CREATE TABLE OWER (TIME date ,NAME varchar(10), NUM number(2)); declare INT number(2):= 1; BEGIN LOOP INT := INT +1; INSERT INTO OWER (TIME,NAME,NUM) VALUES (SYSDATE ,'HHH',5); dbms_output.put_line ('想看看你打印了'||to_char(int)||'次'); dbms_output.put_line (int); exit when int=8; --循环内容包含此处的值 end loop; end; select * from ower; declare int number := 1; begin while int<10 loop --等于10 的时候退出 dbms_output.put_line ('想看看你打印了'||to_char(int)||'次'); int:= int+1; end loop; end; create table temp_table(num_col number(10)) ; DECLARE V_counter NUMBER := 10; BEGIN INSERT INTO temp_table(num_col) VALUES (v_counter ); FOR v_counter IN 20 .. 25 LOOP -- 打印出20 ,到25 行的内容. INSERT INTO temp_table (num_col ) VALUES ( v_counter ); END LOOP; INSERT INTO temp_table(num_col) VALUES (v_counter ); FOR v_counter IN REVERSE 20 .. 25 LOOP INSERT INTO temp_table (num_col ) VALUES ( v_counter ); END LOOP; END ;