打印本文 打印本文 关闭窗口 关闭窗口
几十个实用的PL/SQL(4)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3822  更新时间:2007/11/14 11:08:09  文章录入:mintao  责任编辑:mintao
       WHERE emp.deptno=dept.deptno AND emp.ename=pename;

END;

/

VARIABLE vdname VARCHAR2(14)

VARIABLE vloc VARCHAR2(13)

 

EXECUTE DeptMesg(''''SMITH'''',:vdname,:vloc);

PRINT vdname vloc;

 

Q.编写一个给特殊雇员加薪10%的过程,这之后,检查如果已经雇佣该雇员超过60个月,则给他额外加薪3000.

A.

CREATE OR REPLACE PROCEDURE Raise_Sal(no IN NUMBER) AS

       vhiredate DATE;

       vsal emp.sal%TYPE;

BEGIN

       SELECT hiredate,sal INTO vhiredate,vsal FROM emp WHERE empno=no;

       IF MONTHS_BETWEEN(SYSDATE,vhiredate)>60 THEN

              vsal:=NVL(vsal,0)*1.1+3000;

       ELSE

              vsal:=NVL(vsal,0)*1.1;

       END IF;

       UPDATE emp SET sal=vsal WHERE empno=no;

END;

/

VARIABLE no NUMBER

BEGIN

       :no:=7369;

END;

/

EXECUTE Raise_Sal(:no)

SELECT empno,ename,sal,comm,hiredate FROM emp WHERE empno=:no;

 

Q.编写一个函数以检查所指定雇员的薪水是否有效范围内。不同职位的薪水范围为:

 Designation          Raise

 Clerk                   1500-2500

 Salesman             2501-3500

 Analyst                3501-4500

 Others                 4501 and above.

 如果薪水在此范围内,则显示消息“Salary is OK”,否则,更新薪水为该范围内的最水值。

A.

CREATE OR REPLACE FUNCTION Sal_Level(no emp.empno%TYPE) RETURN CHAR AS

       vjob emp.job%TYPE;

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口