How would you execute the ALTER SYSTEM and ALTER DATABASE commands in PL/SQL prior to Oracle8?
Oracle8 introduced a built-in package that allows DDL statements to be executed dynamically, while eliminating much of the coding that goes with DBMS_SQL. What is it? Use it in an example to coalesce a tablespace (note that we are not referring to Native Dynamic SQL).
Working with the built-in discovered in 30-11, let’s look at a couple of scripts that assist the DBA. The examples use a cursor to retrieve information from the Oracle catalog and then issue DDL statements to perform a task.
Part of a DBA’s job is to be proactive and look for problems before they occur. One problem that can crop up is corrupt data blocks that require an object to be recovered. Because this is a repetitive task that should be done periodically, it’s nice to have a script that automatically analyzes all your objects for you.
First, develop a CURSOR statement that identifies all the tables and clusters that need to be examined for a given schema.
Next, write a procedure that uses the cursor created in 30-12 and automatically analyzes all the objects, searching for corrupt blocks.
Here is another example of issuing object-level DDL statements based on information retrieved from a cursor. This procedure works on indexes.
Indexes are strange beasts. Unlike tables, their space cannot be reused, and in an update- or delete-intensive environment, much of the space can end up wasted. It ...