1、?編寫一個程序塊,從emp表中顯示名為’SMITH’的雇員的薪水和職位。
?SET SERVEROUTPUT ON
?declare
?v_sal emp.sal%type;
?v_job emp.job%type;
?begin
?select sal,job into v_sal,v_job from emp where ename = 'SMITH';
?DBMS_OUTPUT.put_line(v_sal||' '||v_job);
?END;
提示用戶輸入'SMITH'
?SET SERVEROUTPUT ON
?declare
?v_sal emp.sal%type;
?v_job emp.job%type;
?v_name emp.ename%type:='&v_name';--此處在外面加入單引號,這樣在輸入的時候就直接可以輸入字符串了
?begin
?select sal,job into v_sal,v_job from emp where ename = v_name;
?DBMS_OUTPUT.put_line(v_sal||' '||v_job);
?END;
2、?編寫一個程序塊,接受用戶輸入的一個部門號,從dept表中顯示該部門的名稱與所在的位置。
?SET SERVEROUTPUT ON
?declare
?v_dname? dept.dname%type;
?v_loc? dept.loc%type;
?v_deptno? dept.deptno%type:=&v_deptno;
?begin
?select dname,loc into v_dname,v_loc from dept where deptno = v_deptno;
?DBMS_OUTPUT.put_line(v_dname||'+'||v_loc);
?EXCEPTION
?WHEN no_data_found THEN
?DBMS_OUTPUT.put_line('您輸入的部門號不存在!');
??end;
3、?接受兩個數相除并且顯示結果,如果第二個數為0,則顯示消息“除數不能為0”。
?SET SERVEROUTPUT ON
?DECLARE
?v_divsor REAL:=&v_divsor;--除數
?v_dividend REAL:=&v_dividend;--被除數
?v_result REAL;
?
?BEGIN
?v_result := v_dividend/v_divsor;
?DBMS_OUTPUT.put_line('結果為'||v_result);
?EXCEPTION
?WHEN ZERO_DIVIDE THEN
?DBMS_OUTPUT.put_line('除數不能為零');
?END;
4、?編寫一個程序塊,接受一個雇員名,從emp表中顯示該雇員的工作崗位與薪水,若輸入的雇員名不存在,顯示“該雇員不存在”信息。
?SET SERVEROUTPUT ON
?DECLARE
?v_job emp.job%type;
?v_sal emp.sal%type;
?v_ename emp.ename%type:='&v_ename';--輸入員工姓名
?BEGIN
?select job,sal into v_job,v_sal from emp where ename = v_ename;
?DBMS_OUTPUT.put_line('員工工作'||v_job||'員工薪水'||v_sal);
?EXCEPTION
?WHEN NO_DATA_FOUND THEN
?DBMS_OUTPUT.put_line('您要查找的員工不存在.');?
?END;?
5、?編寫一個程序塊,利用%type屬性,接受一個雇員號,從emp表中顯示該雇員的整體薪水(即,薪水+傭金)
?SET SERVEROUTPUT ON
?DECLARE
?v_empno emp.empno%type:=&v_empno;--輸入員工編號
?v_saladdcomm emp.sal%type;
?v_sal emp.sal%type;
?v_comm?emp.comm%type;
?
?BEGIN
?select?sal,comm into v_sal,v_comm from emp where empno = v_empno;
?v_saladdcomm := v_sal + NVL(v_comm,0);--這里需要用到NVL函數,如果v_comm為NULL的話則設為0
????????????????????????????????????????????????????????????????????--否則如果v_comm為空的話,計算出來的值則為空???????????????????????????
?DBMS_OUTPUT.put_line(v_empno||'的整體薪水是:'||v_saladdcomm);
?EXCEPTION
?WHEN NO_DATA_FOUND THEN
?DBMS_OUTPUT.put_line('您要查找的員工編號不存在!');
?END;
posted on 2006-09-05 21:42
JavaCoffe 閱讀(1100)
評論(1) 編輯 收藏 所屬分類:
Oralce&&PL/SQL