Mega Code Archive

 
Categories / Oracle PLSQL / Insert Delete Update
 

Use bulk collect and rownum to insert first 10 records

SQL> SQL> SQL> create table myTable   2  as   3  select rownum id, a.*   4    from all_objects a   5   where 1=0   6  / Table created. SQL> SQL> declare   2      l_owner        dbms_sql.varchar2_table;   3      l_object_name  dbms_sql.varchar2_table;   4      l_object_type  dbms_sql.varchar2_table;   5      l_created      dbms_sql.varchar2_table;   6   7      cursor c is   8      select owner, object_name, object_type, created   9      from myTable  10      order by created DESC;  11  begin  12      select owner, object_name, object_type, created  13        bulk collect into l_owner, l_object_name, l_object_type, l_created from ( select owner, object_name, object_type, created from myTable order by created DESC )  14       where ROWNUM <= 10;  15  16      open c;  17      fetch c bulk collect  18       into l_owner, l_object_name, l_object_type, l_created  19      limit 10;  20      close c;  21  end;  22  / PL/SQL procedure successfully completed. SQL> SQL> SQL> drop table myTable; Table dropped. SQL>