Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

CREATE OR REPLACE PROCEDURE nrows_at_a_time(p_array_size PLS_INTEGER) AUTHID

CURRENT_USER IS
l_owner dbms_sql.VARCHAR2_table;
l_object_name dbms_sql.VARCHAR2_table;
l_subobject_name dbms_sql.VARCHAR2_table;
l_object_id dbms_sql.NUMBER_table;
l_data_object_id dbms_sql.NUMBER_table;
l_object_type dbms_sql.VARCHAR2_table;
l_created dbms_sql.DATE_table;
l_last_ddl_time dbms_sql.DATE_table;
l_timestamp dbms_sql.VARCHAR2_table;
l_status dbms_sql.VARCHAR2_table;
l_temporary dbms_sql.VARCHAR2_table;
l_generated dbms_sql.VARCHAR2_table;
l_secondary dbms_sql.VARCHAR2_table;

CURSOR c IS
SELECT *
FROM all_objects;
BEGIN
OPEN c;
LOOP
FETCH c BULK COLLECT INTO
l_owner, l_object_name, l_subobject_name, l_object_id,
l_data_object_id, l_object_type, l_created,
l_last_ddl_time, l_timestamp, l_status, l_temporary,
l_generated, l_secondary
LIMIT p_array_size;

FORALL i in 1 .. l_owner.COUNT
INSERT INTO t
(owner, object_name, subobject_name, object_id,
data_object_id, object_type, created, last_ddl_time,
timestamp, status, temporary, generated, secondary)
VALUES
(l_owner(i), l_object_name(i), l_subobject_name(i),
l_object_id(i), l_data_object_id(i),
l_object_type(i), l_created(i), l_last_ddl_time(i),
l_timestamp(i), l_status(i), l_temporary(i),
l_generated(i), l_secondary(i));
EXIT WHEN c%NOTFOUND;
END LOOP;
COMMIT;
CLOSE c;
END nrows_at_a_time;

You might also like