Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Plain Text by asdsad ( 13 years ago )
1.

DECLARE
 CURSOR dept_cur is SELECT deptno, dname, loc from dept;
 CTR number;
BEGIN
 FOR r_dept in dept_cur 
 LOOP
  INSERT into old_dept VALUES r_dept;
  ctr:= ctr + 1;
 END LOOP;
 DBMS_OUTPUT.PUT_LINE(ctr || ' processed');
END;

2.
declare
  v_deptno number :=50;
  cursor c_emp_cursor is select last_name,salary,manager_id from employees
  where deptartment_id=v_deptno;
  v_rec c_emp_cursor%rowtype
  
begin
  open c_emp_cursor;
  for i in v_rec..c_emp_cursor loop
    fetch c_emp_cursor into v_dept;
    if v_dept.salary < 5000 and (v_dept.manager_id = 101 or v_dept.manager_id = 124) then
      dbms_output.put_line(v_dept.last_name||' Due for a raise');
    else
      dbms_output.put_line(v_dept.last_name||' Not due for a raise');
  close c_emp_cursor;
end;

3.

SET SERVEROUTPUT ON

DECLARE
 computed_commission number;
 v_sales_amount number;
BEGIN
 v_sales_amount := &v_sales_amount;
  
 IF v_sales_amount > 10000
 THEN computed_commission := v_sales_amount * 0.20;
  
 ELSIF v_sales_amount >= 5000 AND v_sales_amount <= 10000
 THEN computed_commission := v_sales_amount * 0.10;
  
 ELSIF v_sales_amount < 5000
 THEN computed_commission := v_sales_amount * 0.05;
  
 END IF;
  
 DBMS_OUTPUT.PUT_LINE('The Computed Commission is: ' || computed_commission);
END;

4.

DECLARE
  cursor c_stud is
  select stud_no,subj_code,final_grade,grade from stud_grades;
  r_stud c_stud%rowtype;
  
begin
  open c_stud;
  loop
    fetch c_stud into r_stud;
    exit when c_stud%notfound;
    if r_stud.final_grade between 90 and 100 then
      update stud_grade set final_grade='A' where current of c_stud;
      dbms_output.put_line('Student '|| r_stud.stud_no || 'got an A');
    elsif r_stud.final_grade between 80 and 89 then
      update stud_grade set final_grade='B' where current of c_stud;
    elsif r_stud.final_grade between 70 and 79 then
      update stud_grade set final_grade='C' where current of c_stud;
    elsif r_stud.final_grade < 70 then
      update stud_grade set final_grade='D' where current of c_stud;
    end if;
end;


5.

DECLARE
  cursor c_book_invent is
  select book_code,book_class,unit_count from books_inventory;
  r_book c_book_invent%rowtype;
  
begin
  open c_book_invent;
  loop
    fetch c_book_invent into r_book;
    exit when c_book_invent%notfound;
    if r_book.unit_count < 50 and r_book.book_class= 'STUD_COPY' then
      insert into books_replenish values r_book where current of c_book_invent;
    elsif r_book.unit_count < 10 and r_book.book_class= 'TEACHER_COPY' then
      insert into books_replenish values r_book where current of c_book_invent;
    end if;
end;

 

Revise this Paste

Your Name: Code Language: