For many SQL-related problems, obtaining a reproducible test case makes it easier to resolve the problem. Starting with the 11g Release 2 (11.2), Oracle Database contains the SQL Test Case Builder, which automates the somewhat difficult and time-consuming process of gathering and reproducing as much information as possible about a problem and the environment in which it occurred.
SQL Test Case Builder captures information pertaining to a SQL-related problem, along with the exact environment under which the problem occurred, so that you can reproduce and test the problem on a separate database. After the test case is ready, you can upload the problem to Oracle Support to enable support personnel to reproduce and troubleshoot the problem.
The information gathered by SQL Test Case Builder includes the query being executed, table and index definitions (but not the actual data), PL/SQL functions, procedures, and packages, optimizer statistics, and initialization parameter settings.
16.6.1 Creating a Test Case
You can access the SQL Test Case Builder from Enterprise Manager or manually using the DBMS_SQLDIAG
package.
16.6.1.1 Accessing SQL Test Case Builder from Enterprise Manager
From Enterprise Manager, the SQL Test Case Builder is accessible only when a SQL incident occurs. A SQL-related problem is referred to as a SQL incident, and each SQL incident is identified by an incident number. You can access the SQL Test Case Builder from the Support Workbench
page in Enterprise Manager.
You can access the Support Workbench
page in either of the following ways:
-
In the Database Home page of Enterprise Manager, under
Diagnostic Summary
, click the link toActive Incidents
(indicating the number of active incidents). This opens theSupport Workbench
page, with the incidents listed in a table. -
Click Advisor Central under
Related Links
to open theAdvisor Central
page. Next, click SQL Advisors and then Click here to go to Support Workbench to open theSupport Workbench
page.
From the Support Workbench
page, to access the SQL Test Case Builder:
-
Click an incident ID to open the problem details for the particular incident.
-
Next, click Oracle Support in the
Investigate and Resolve
section. -
Click Generate Additional Dumps and Test Cases.
-
For a particular incident, click the icon in the
Go To Task
column to run the SQL Test Case Builder.The output of the SQL Test Case Builder is a SQL script that contains the commands required to re-create all the necessary objects and the environment. SQL Test Case Builder stores the file in the following location, where inc_num refers to the incident number and run_num refers to the run number:
$ADR_HOME/incident/incdir_inc_num/SQLTCB_run num
For example, a valid output file name could be as follows:
$ORACLE_HOME/log/diag/rdbms/dbsa/dbsa/incident/incdir_2657/SQLTCB_1
16.6.1.2 Accessing SQL Test Case Builder Using DBMS_SQLDIAG
You can also invoke the SQL Test Case Builder manually, using the DBMS_SQLDIAG
package. This package consists of various subprograms for the SQL Test Case Builder, some of which are listed in Table 16-1.
Table 16-1 SQL Test Case Builder Procedures in DBMS_SQLDIAG
Procedure Name | Function |
---|---|
|
Generates a SQL test case |
|
Generates a SQL test case corresponding to the incident ID passed as an argument |
|
Generates a SQL test case corresponding to the SQL text passed as an argument |
For more information on this package and all of its procedures and parameters, see Oracle Database PL/SQL Packages and Types Reference.
http://docs.oracle.com/cd/E11882_01/server.112/e41573/sql_overview.htm#PFGRF94838