> For the complete documentation index, see [llms.txt](https://docs.ovaledge.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ovaledge.com/release8.1/connectors/connector-repositories/rdbms/oracle/oracle-lineage.md).

# Oracle - Lineage

This article outlines the lineage coverage, configuration requirements, metadata handling, supported scenarios, component behaviors, transformation coverage, and known limitations for lineage extraction in Oracle. The Oracle connector provides automated, production-ready data lineage extraction from Oracle databases, enabling end-to-end visibility into data flow from source tables and PL/SQL logic to downstream transformations. It supports both table-level and column-level lineage for Oracle SQL workloads and transformation processes.

## Lineage Configuration Requirements

Accurate lineage extraction depends on lineage processing configuration and metadata availability. These requirements must be properly configured and available to ensure successful lineage generation and source-target resolution.

### Configuration Requirements Table

<table><thead><tr><th width="186">Configuration</th><th>Required Detail</th></tr></thead><tbody><tr><td>Lineage Processing Mode</td><td>Lineage execution is controlled using jobOption in ProcessLineageService (UNPROCESSED_LINEAGE_OBJECTS, REPROCESS_ALL_SOURCECODE, SELECTED_LINEAGE_OBJECTS, CONNECTION_LINEAGE)</td></tr><tr><td>Shallow Lineage</td><td>Enabled using OEConfig.LINEAGE_SHALLOW</td></tr><tr><td>Shallow Lineage Connection Scope</td><td>Controlled using OEConfig.SHALLOW_LIENAGE_CONNECTION_IDS</td></tr><tr><td>Processing Limit</td><td>Controlled using OEConfig.LINEAGE_CODES_PROCESS_LIMIT</td></tr></tbody></table>

{% hint style="warning" %}
Incorrect lineage processing configuration or missing source code metadata may result in incomplete lineage generation.
{% endhint %}

## Lineage Components

| Component / Feature                                   | Availability |
| ----------------------------------------------------- | :----------: |
| Tables                                                |       ✅      |
| Views                                                 |       ✅      |
| Stored Procedures                                     |      ⚠️      |
| Functions                                             |      ⚠️      |
| Triggers                                              |      ⚠️      |
| Packages / Package Body                               |      ⚠️      |
| Columns                                               |       ✅      |
| SQL Queries                                           |       ✅      |
| Aggregations                                          |       ✅      |
| Analytic Functions                                    |       ✅      |
| Oracle-specific Syntax (DECODE, JSON\_TABLE, @prompt) |      ⚠️      |
| Dynamic SQL                                           |       ❌      |
| Index DDL                                             |       ❌      |
| Materialized View Refresh                             |       ❌      |

{% hint style="info" %}
The ⚠️ icon indicates partially supported functionality with limited lineage coverage in applicable scenarios.
{% endhint %}

## Column Creation Support

This section outlines lineage support for column creation and transformation scenarios.

### Column Creation from Lineage

| Transformation Type | Supported |
| ------------------- | :-------: |
| Expressions         |     ✅     |
| Aggregations        |     ✅     |
| Calculated Fields   |     ⚠️    |
| Derived Columns     |     ⚠️    |
| Renamed Columns     |     ✅     |
| Temp Columns        |     ✅     |
| Analytic Columns    |     ✅     |

{% hint style="info" %}
The ⚠️ icon indicates partially supported functionality with limited lineage coverage in applicable scenarios.
{% endhint %}

## Supported Use Cases

The connector supports lineage extraction across Oracle SQL objects, PL/SQL code, and transformation workflows. These use cases represent scenarios where lineage extraction functions as expected.

### Supported Lineage Scenarios

<table><thead><tr><th width="265">Supported</th><th>Details</th></tr></thead><tbody><tr><td>Table to Table Lineage</td><td>Lineage for SELECT, INSERT, UPDATE, DELETE, and MERGE operations</td></tr><tr><td>Column to Column Lineage</td><td>Lineage including expressions and transformations</td></tr><tr><td>View to Table Lineage</td><td>Lineage extraction from views to underlying tables</td></tr><tr><td>Procedure to Table Lineage</td><td>Lineage extraction through PL/SQL parsing</td></tr><tr><td>Function to Table Lineage</td><td>Partial lineage extraction from functions</td></tr><tr><td>Trigger to Table Lineage</td><td>Query extraction-based lineage from triggers</td></tr><tr><td>Package to Table Lineage</td><td>Lineage based on SQL statements within packages</td></tr><tr><td>Aggregate Function Lineage</td><td>Lineage for functions such as SUM, COUNT, and ROW_NUMBER</td></tr><tr><td>Analytic Function Lineage</td><td>Lineage for OVER, PARTITION BY, and ORDER BY operations</td></tr><tr><td>Oracle Syntax Normalization</td><td>Support for DECODE, JSON_TABLE, @prompt, and collate binary_ci normalization</td></tr><tr><td>Query Log Lineage</td><td>Lineage through CONNECTION_LINEAGE processing</td></tr><tr><td>Derived Column Lineage</td><td>Expression-based column lineage</td></tr><tr><td>Temporary Column Creation</td><td>Temporary columns are created when metadata is unavailable</td></tr></tbody></table>

{% hint style="info" %}
Lineage extraction is based on Oracle SQL parsing, PL/SQL analysis, metadata availability, and configured lineage processing options.
{% endhint %}

## Partial or Limited Coverage

Certain scenarios provide only partial lineage coverage due to parser limitations, Oracle SQL rewrites, metadata dependencies, or PL/SQL complexity.

### Scenarios

<table><thead><tr><th width="239">Scenario</th><th>Limitation Description</th></tr></thead><tbody><tr><td>Calculated Fields</td><td>Oracle rewrites (for example, DECODE to SUM) may reduce lineage accuracy</td></tr><tr><td>Derived Columns</td><td>Expression parsing is limited for multi-step logic</td></tr><tr><td>Dynamic SQL References</td><td>Object references generated through EXECUTE IMMEDIATE cannot be fully resolved</td></tr><tr><td>PL/SQL Procedures</td><td>Nested or complex logic is only partially supported</td></tr><tr><td>BEGIN...END Blocks</td><td>Wrapper-only statements may not resolve into lineage</td></tr><tr><td>Cross-object Dependencies</td><td>Procedure-to-procedure lineage is limited</td></tr><tr><td>Shallow Lineage</td><td>Only table-level lineage is generated</td></tr><tr><td>Missing Metadata</td><td>May result in temporary or unknown columns</td></tr><tr><td>Dataset Lineage Status</td><td>Lineage may be incomplete if parsing fails</td></tr></tbody></table>

{% hint style="warning" %}
Complex PL/SQL logic, missing metadata, and Oracle SQL rewrites may reduce lineage accuracy or completeness.
{% endhint %}

## Unsupported Scenarios

The connector does not support lineage extraction for certain administrative operations, dynamic SQL patterns, and non-resolvable execution paths due to limitations in static SQL parsing and metadata availability.

### Unsupported Lineage

<table><thead><tr><th width="354">Not Supported</th><th>Description</th></tr></thead><tbody><tr><td>CREATE / DROP / ALTER INDEX</td><td>Index management operations are not included in lineage processing</td></tr><tr><td>DBMS_STATS.GATHER_TABLE_STATS</td><td>Statistics collection operations are not tracked</td></tr><tr><td>OPENQUERY</td><td>External query execution is not supported</td></tr><tr><td>REFRESH MATERIALIZED VIEW</td><td>Materialized view refresh operations are not processed</td></tr><tr><td>OPTIMIZE and DESC Statements</td><td>Administrative statements are excluded from lineage</td></tr><tr><td>EXEC Statements with Unresolved Object References</td><td>Object references cannot be resolved during parsing</td></tr><tr><td>Dynamic SQL (EXECUTE IMMEDIATE) with Non-resolvable Object Names</td><td>Runtime-generated objects cannot be identified</td></tr><tr><td>MDX or Non-SQL Queries</td><td>Queries outside the supported SQL parsing scope</td></tr><tr><td>Wrapper-only BEGIN...END Blocks Without DML/SELECT Statements</td><td>No lineage-generating SQL available for analysis</td></tr><tr><td>Complex PL/SQL Packages and Procedures with Nested or Multi-step Logic</td><td>Logic cannot be statically resolved for lineage generation</td></tr></tbody></table>

{% hint style="info" %}
Unsupported scenarios will not produce lineage and may appear disconnected in lineage visualization.
{% endhint %}

## Current Functional Status

This section outlines the present state of lineage coverage supported by the Oracle connector based on the available capabilities and limitations.

<table><thead><tr><th width="200">Status Area</th><th>Details</th></tr></thead><tbody><tr><td>Overall Coverage</td><td>Partial coverage across Oracle SQL and PL/SQL workloads</td></tr><tr><td>Lineage Depth</td><td>Strong table-level and column-level lineage support</td></tr><tr><td>Supported Inputs</td><td>Tables, views, SQL queries, PL/SQL procedures, triggers, packages, and query logs</td></tr><tr><td>Functional Scope</td><td>Lineage extraction for Oracle SQL parsing, aggregations, analytic functions, and transformation workflows</td></tr><tr><td>Limitation Areas</td><td>Dynamic SQL, complex PL/SQL workflows, cross-object dependencies, missing metadata, and unsupported administrative statements</td></tr><tr><td>Resulting Output</td><td>Reliable lineage for most Oracle SQL workloads with partial coverage for advanced PL/SQL and dynamic execution scenarios</td></tr></tbody></table>

{% hint style="warning" %}
Coverage remains partial because dynamic SQL, complex PL/SQL workflows, unsupported administrative statements, and non-resolvable execution paths are not fully supported. The connector provides strong lineage coverage for Oracle SQL parsing, column-level lineage, aggregations, and analytic functions, but advanced procedural logic may require manual validation.
{% endhint %}

***

Copyright © 2026, OvalEdge LLC, Peachtree Corners, GA, USA.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ovaledge.com/release8.1/connectors/connector-repositories/rdbms/oracle/oracle-lineage.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
