create or replace procedure p_getrsnamebytableid(       tableid in number,
       out_sy out Arraylist,
       result out number)
is
  v_sql varchar2(1000);
  tablename varchar2(50);
  TYPE MYRCTYPE IS REF CURSOR;
  rc myrctype; 
  id number;
  name1 varchar2(100);
begin
  savepoint p_getrsnamebytableid;
  select f_tablename into tablename from t_edu_sys_table where id =tableid;
  v_sql := 'select id f_name from ' ||tablename;
  out_sy :=Arraylist();
  OPEN rc  FOR v_sql;
  loop 
     fetch rc into id,name1; 
     dbms_output.put_line(id);
     OUT_SY.extend;
     OUT_SY(OUT_SY.last) := id;  
     OUT_SY.extend;
     OUT_SY(OUT_SY.last) := name1;
     exit when(rc%NOTFOUND);
  end loop;  
  CLOSE  rc;  
  result :=100;
EXCEPTION
  WHEN OTHERS
  THEN
     ROLLBACK TO p_getrsnamebytableid;
  result :=101;  
end p_getrsnamebytableid;