这两天做了oracle的实验了。第一题目描述如下:
表PAY_TABLE结构为:
Name Null? Type
NAME NOT NULL VARCHAR2(20)
PAY_TYPE NOT NULL VARCHAR2(8)
PAY_RATE NOT NULL NUMBER(8,2)
EFF_DATE NOT NULL DATE
PREV_PAY NUMBER(8,2)
—————————————————————————–
数据:
NAME PAY_TYPE PAY_RATE EFF_DATE PREV_PAY
SANDRA SAMUELS HOURLY 12.50 01-JAN-04
ROBERT BOBAY HOURLY 11.50 15-MAY-03
KEITH JONES HOURLY 10.00 31-OCT-04
SUSAN WILLIAMS HOURLY 9.75 01-MAY-04
CHRISSY ZOES SALARY 50000.00 01-JAN-04
CLODE EVANS SALARY 42150.00 01-MAR-04
JOHN SMITH SALARY 35000.00 15-JUN-03
要求:要给为你工作的时间超过了六个月的员工增加薪金。符合条件的钟点工的薪金增加4%,而符合条件的雇员的薪金需要增加5%。
建表以及数据的sql如下:
create table pay_table |
插入日期时还得注意格式。与当前session中的格式一致。
唉,赵明老师也不给个备注。。各个字段给解释下才行嘛。PREV_PAY现在才发现估计是记录上一次的工资值。当时做的时候还没有注意呢,不管了。也就是个update的语句。下面用存储过程实现如下:create or replace procedure proc_dbtest |
————————————————————————————-
这个实验主要考查了oracle中存储过程的基本语法,以及游标的使用。注意会用oracle中的日期函数。用好了日期函数,可以节约很大的逻辑。