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;