DECLARE l_cursor integer default dbms_sql.open_cursor; l_cursor2 integer default dbms_sql.open_cursor; l_long_val varchar2(2000); junk integer; BEGIN dbms_sql.parse(l_cursor, 'select ''alter rollback segment ''||segment_name||'' shrink'' from dba_rollback_segs where segment_name != ''SYSTEM'' and status = ''ONLINE''', dbms_sql.native); dbms_sql.define_column(l_cursor, 1, l_long_val, 2000); junk := dbms_sql.execute(l_cursor); while dbms_sql.fetch_rows(l_cursor) > 0 loop dbms_sql.column_value(l_cursor, 1, l_long_val); dbms_sql.parse(l_cursor2, l_long_val, dbms_sql.native); junk := dbms_sql.execute(l_cursor2); -- dbms_sql.close_cursor(l_cursor2); end loop; dbms_sql.close_cursor(l_cursor); END; /