Oracle Impact Analyzer
Use this skill when developers ask about database change impacts, dependencies, or what might break when modifying Oracle database objects.
When to Use This Skill
Activate this skill when the user asks questions like:
- •"What depends on [TABLE]?"
- •"What breaks if I change/rename/drop [COLUMN]?"
- •"Who calls [PROCEDURE/FUNCTION]?"
- •"Analyze impact of changing [TABLE/COLUMN]"
- •"Generate impact report for [TABLE]"
- •"What objects reference [TABLE]?"
- •"Show me the dependencies for [OBJECT]"
Prerequisites
The oracle-impact CLI must be installed and configured:
pip install -e /path/to/OracleImpactAnalyzer oracle-impact configure # One-time setup
CLI Commands
Analyze Table Impact
Find all objects that depend on a table:
oracle-impact analyze-table TABLE_NAME [--schema SCHEMA] [--format markdown|json|excel]
Example:
oracle-impact analyze-table EMPLOYEES oracle-impact analyze-table EMPLOYEES --schema HR --format json
Analyze Column Change
Understand what breaks if a column is modified:
oracle-impact analyze-column TABLE_NAME COLUMN_NAME --change-type [add|modify|rename|drop]
Examples:
# What breaks if we rename this column? oracle-impact analyze-column EMPLOYEES PHONE --change-type rename # Impact of dropping a column oracle-impact analyze-column ORDERS ORDER_DATE --change-type drop # Adding a new column (usually low impact) oracle-impact analyze-column CUSTOMERS EMAIL --change-type add
Find Procedure/Function Callers
See what objects call a procedure or function:
oracle-impact analyze-procedure PROCEDURE_NAME [--type PROCEDURE|FUNCTION|PACKAGE]
Examples:
oracle-impact analyze-procedure CALCULATE_BONUS oracle-impact analyze-procedure GET_EMPLOYEE_DETAILS --type FUNCTION oracle-impact analyze-procedure PKG_PAYROLL --type PACKAGE
Generate Reports
Export comprehensive impact analysis to files:
oracle-impact report TABLE_NAME --format [markdown|excel|json] --output ./reports/
Examples:
# Excel report for stakeholders oracle-impact report EMPLOYEES --format excel --output ./reports/ # Markdown for documentation oracle-impact report ORDERS --format markdown --output ./docs/
Test Connection
Verify database connectivity:
oracle-impact test-connection
Risk Levels
The analyzer categorizes impacts by risk:
| Level | Score | Description |
|---|---|---|
| CRITICAL | 80-100 | Breaking changes to core business objects |
| HIGH | 50-79 | Multiple dependent objects affected |
| MEDIUM | 20-49 | Limited, manageable impact |
| LOW | 1-19 | Minimal dependencies |
| NONE | 0 | No dependencies found |
Output Interpretation
Table Analysis Output
When analyzing a table, you'll see:
- •Dependencies: Objects that directly depend on the table (procedures, functions, packages)
- •Triggers: Database triggers on the table
- •Foreign Keys: Other tables referencing this table
- •Views: Views that query this table
- •Synonyms: Aliases pointing to this table
- •Risk Assessment: Overall risk score and recommendations
Column Analysis Output
When analyzing a column change, you'll see:
- •Source References: Where the column is used in PL/SQL code
- •Constraints: Check, unique, or foreign key constraints on the column
- •Indexes: Indexes that include the column
- •Risk Assessment: Based on change type and dependencies
Example Workflows
Workflow 1: Before Modifying a Table
User: "What depends on the EMPLOYEES table?"
Run:
oracle-impact analyze-table EMPLOYEES
Workflow 2: Before Renaming a Column
User: "What breaks if I rename EMPLOYEES.PHONE to PHONE_NUMBER?"
Run:
oracle-impact analyze-column EMPLOYEES PHONE --change-type rename
Workflow 3: Before Changing a Stored Procedure
User: "What calls the CALCULATE_BONUS procedure?"
Run:
oracle-impact analyze-procedure CALCULATE_BONUS
Workflow 4: Generating Documentation
User: "Generate an impact report for the ORDERS table"
Run:
oracle-impact report ORDERS --format excel --output ./reports/
Configuration
Environment variables (set in .env or shell):
ORACLE_HOST=your-db-host ORACLE_PORT=1521 ORACLE_SERVICE_NAME=your-service ORACLE_USERNAME=your-user
Password is stored securely in OS keyring after running oracle-impact configure.