lunedì 18 giugno 2012

Lettura dati con store-procedure

Con questo piccolo esempio di store-procedure vorrei che dalla tabella "tbl_course" venissero selezionati tutti i nomi passati in "inName" e fosse aggiornato il giorno d'esame "dayExam" con il valore 1.
In effetti potevo optare per una semplice "update...set" ma la reale procedura che ho utilizzato aveva al suo interno più parametri in input e la query era pìù complessa in ambiente Oracle.
CREATE OR REPLACE PROCEDURE OWN_NAME.proc_name(
    inName IN varchar2) 
is
selectCursor    sys_refcursor;
rowToUpdate     own_name.tbl_course%ROWTYPE;
begin
 open selectCursor for
  SELECT own_name.tbl_course.*
  FROM own_name.tbl_course
  WHERE tbl_course.inName = proc_name.inName;
 LOOP
  fetch selectCursor into rowToUpdate;
  exit when selectCursor%NOTFOUND;
   update  own_name.tbl_course set dayExam = 1
   where   own_name.tbl_course.id = rowToUpdate.id;
 END LOOP;
 close selectCursor;
end;