PLSQL小例子

PLSQL小例子

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;

你可能感兴趣的:(PLSQL小例子)