2.1到30之间,能被3整除的数打印出来
3.输入4位整数,判断是否是闰年
4.定义员工号码,从emp表中获得工资,
如果工资小于1000,'POOR',
大于等于1000小于2000,'MEDIUM',
大于等于2000小于3000 ,'GOOD',
大于等于3000小于4000 ,'VERY GOOD',
否则,'EXCELLENT'
5.对所有员工,如果该员工的职位是MANAGER,并且在DALLAS工作那么就给他工资加15%;如果该员工职位是CLERK,并且该员工在NEW YORK工作那么工资扣除10%,其他情况不作处理。
6.对直接上级是‘BLAKE’的所有员工,按照参加工作的时间加薪:
82年之前的加薪20%,82年之后的加薪10%
1.DECLARE
BEGIN
FOR i IN 1..5 LOOP
INSERT INTO dept VALUES((SELECT MAX(deptno) FROM dept)+1,'education'||i,NULL);
END LOOP;
END;
2.
DECLARE
BEGIN
FOR i IN 1..30 LOOP
IF i/3=ROUND(i/3) THEN
dbms_output.put_line(i);
END IF;
END LOOP;
END;
3.
DECLARE
years NUMBER(6);
BEGIN
years:=&year;
IF (years/100)=ROUND(years/100) THEN
IF (years/4)=ROUND(years/4) THEN
dbms_output.put_line(years||'年是闰年');
ELSE
dbms_output.put_line(years||'年不是闰年');
END IF;
ELSE IF (years/4)=ROUND(years/4) THEN
dbms_output.put_line(years||'年是闰年');
ELSE
dbms_output.put_line(years||'年不是闰年');
END IF;
END IF;
END;
4.
DECLARE
empnos NUMBER(4);
emp_sal emp.sal%TYPE;
BEGIN
empnos:=&empnos;
SELECT sal INTO emp_sal FROM emp WHERE empno=empnos;
IF emp_sal<1000 THEN
dbms_output.put_line('POOR');
ELSE IF emp_sal BETWEEN 1000 AND 2000 THEN
dbms_output.put_line('MEDIUM');
ELSE IF emp_sal BETWEEN 2000 AND 3000 THEN
dbms_output.put_line('GOOD');
ELSE IF emp_sal BETWEEN 3000 AND 4000 THEN
dbms_output.put_line('VERY GOOD');
ELSE
dbms_output.put_line('EXCELLENT');
END IF;
END IF;
END IF;
END IF;
END;
5.
DECLARE
CURSOR emp_dept_cursor IS
SELECT e.empno,e.job,d.loc FROM emp e,dept d WHERE e.deptno=d.deptno;
emp_empno emp.empno%TYPE;
emp_job emp.job%TYPE;
dept_loc dept.loc%TYPE;
BEGIN
OPEN emp_dept_cursor;
LOOP
FETCH emp_dept_cursor INTO emp_empno,emp_job,dept_loc;
EXIT WHEN emp_dept_cursor%NOTFOUND;
IF emp_job='MANAGER' AND dept_loc='DALLAS' THEN
UPDATE emp SET sal=sal*1.15 WHERE empno=emp_empno;
END IF;
IF emp_job='CLERK' AND dept_loc='NEW YORK' THEN
UPDATE emp SET sal=sal*0.9 WHERE empno=emp_empno;
END IF;
END LOOP;
END;
6.
DECLARE
CURSOR emp_cursor IS
SELECT empno,hiredate FROM emp WHERE mgr=(SELECT empno FROM emp WHERE ename='BLAKE');
v_empno emp.empno%TYPE;
v_sal emp.sal%TYPE;
v_hiredate DATE;
BEGIN
OPEN EMP_CURSOR;
LOOP
FETCH emp_cursor INTO v_empno,v_hiredate;
EXIT WHEN emp_cursor%NOTFOUND;
IF EXTRACT(YEAR FROM v_hiredate)<1982 THEN
UPDATE emp SET sal=sal*1.2 WHERE empno=v_empno;
ELSE
UPDATE emp SET sal=sal*1.1 WHERE empno=v_empno;
END IF;
END LOOP;
END;