Databases
Oracle Database
ALL_SOURCE for PL/SQL bodies, DBA_TAB_MODIFICATIONS for write activity, DBA_SCHEDULER_JOBS for schedules.
Oracle estates concentrate more pipeline logic inside the database than any other
platform. Packages containing thousands of lines of PL/SQL, scheduled by
DBMS_SCHEDULER, writing to tables in the same instance, are the normal shape —
and almost none of it is in source control.
That makes Oracle both the hardest estate to reason about without reading the database and
the most rewarding once you do. ALL_SOURCE and ALL_DEPENDENCIES
together yield a genuinely complete transformation graph, which is not true of any other
platform here.
What Decim reads from Oracle Database
Every item below is read-only, and each is a specific view, endpoint or file rather than a category of access. If something here is unacceptable in your environment, it can be removed from the query catalogue — see the agent for how that works.
| What | From | Why it matters |
|---|---|---|
| PL/SQL bodies | ALL_SOURCE | Package, procedure and function text, line by line |
| Dependency edges | ALL_DEPENDENCIES | What each object references, and of what type |
| Write activity | DBA_TAB_MODIFICATIONS | Inserts, updates and deletes since the last statistics gather |
| Schedules | DBA_SCHEDULER_JOBS, DBA_SCHEDULER_JOB_RUN_DETAILS | DBMS_SCHEDULER definitions and run history |
| Object change times | ALL_OBJECTS.LAST_DDL_TIME | When a package was last recompiled |
| Live contention | V$SESSION, V$LOCK | Blocking chains during a stall |
| Column metadata | ALL_TAB_COLUMNS | Types, precision and nullability |
Permissions required
Written out in full, because "read-only access" is not a specification. Nothing below grants the ability to write, and row access is requested only on the specific tables you name.
CREATE USER decim_agent IDENTIFIED BY "...";
GRANT CREATE SESSION TO decim_agent;
-- Catalog and dictionary. SELECT_CATALOG_ROLE covers most DBA_ views.
GRANT SELECT_CATALOG_ROLE TO decim_agent;
-- Dynamic performance views for contention evidence.
GRANT SELECT ON V_$SESSION TO decim_agent;
GRANT SELECT ON V_$LOCK TO decim_agent;
-- Reconciliation tables only.
GRANT SELECT ON SALES.INTAKE_BATCH TO decim_agent;
GRANT SELECT ON SALES.REJECTED_TRANSACTIONS TO decim_agent;
-- Note the V_$ form: V$SESSION is a public synonym for V_$SESSION and
-- cannot be the object of a GRANT. What it builds
What this source contributes to the pipeline topology and to the evidence available during an investigation:
- A near-complete transformation graph from PL/SQL bodies and dependencies
- Scheduled work and its run history from DBMS_SCHEDULER
- Target nodes and write volumes from DBA_TAB_MODIFICATIONS
- Recompilation events that correlate with an incident window
Nodes learned from a definition are marked declared; nodes observed running are marked observed; nodes both declared and observed are verified. Where two sources disagree, the disagreement is recorded as a drift note rather than resolved silently.
Failure modes it surfaces
What this source is uniquely good at proving — and, just as usefully, at disproving. An investigation that can refute a hypothesis cheaply is worth as much as one that confirms it.
| Failure mode | The signal |
|---|---|
| Package recompiled mid-incident | LAST_DDL_TIME inside the window |
| Scheduled job stopped silently | Gap in JOB_RUN_DETAILS with no failure row |
| Load wrote nothing | INSERTS flat in DBA_TAB_MODIFICATIONS |
| Blocking during a stall | Blocker chain in V$SESSION |
Limits
What this integration cannot tell you. Stated because an investigation that overstates its sources produces confident wrong answers, which is worse than an honest blocked.
ALL_SOURCEshows only objects the connecting user can see; a wrapped package body is unreadable by anyone- Multitenant instances need the grants applied per PDB, not once on the CDB
V$views are instance-local — a RAC cluster needsGV$to see the whole picture
Related integrations
- SQL Server — Reads catalog metadata, procedure bodies and write activity — the definitions git never sees.
- Informatica PowerCenter — The repository database holds mappings, sessions and run statistics — including per-target row counts.
- cron & systemd timers — The scheduler with no database. Reads crontabs, timer units and journal history.
See all integrations, or how the sources are combined into one graph.
Get started
Investigating a Oracle Database pipeline?
Bring an incident you already know the answer to. If Decim gets it wrong, that is a more useful demo than one where it doesn't.