Oracle
Oracle
Scan Oracle service objects with optional view lineage.
- Category
- Databases
- Source type
- ORACLE
- Produces
- table
Oracle Database holds the transactional systems of record in most large enterprises — and typically the oldest data, in the schemas nobody has audited in a decade. That combination is exactly what a scan is for.
What you need to connect
Host, port, and a service name (for example TEST_PDB — not an SID), plus a
database user. Read privileges are sufficient: CREATE SESSION, SELECT on the
objects you want scanned, and SELECT_CATALOG_ROLE if you want view lineage.
The Oracle client is bundled in thin mode, so there is no Instant Client installation to manage on the scanning host.
What Classifyre reads
Tables and views across the schemas you allow. Oracle instances tend to be large, so scope them: allow specific schemas, deny the ones you don’t care about, name exact objects, or cap the number of objects per scan.
Shared behaviour · SQL databases
One asset per table or view, never one per row. The asset carries the table's structure — database, schema, table name, object type, its columns and their types, and a row-count estimate — and its content is a sample of real rows, formatted so a detector reads actual values rather than a schema dump.
How many rows, and which ones, is entirely up to the sampling strategy. Large tables are paged through by key rather than by OFFSET, so a scan that stops halfway can resume from where it left off instead of re-reading from the top.
Read-only throughout. The connector issues catalog queries and bounded SELECTs. Nothing is written back, and a read-only account is the right account to give it.
Relationships come out of the engine's own catalog: foreign keys are recorded as REFERENCE links — useful, but they move no data, so they never become a lineage hop, and a view and the tables it reads from are recorded as FLOW — real lineage, with column-level detail parsed out of the view's SQL where the SQL makes that possible. See Lineage.
Metadata on every asset
Asset kind · table
| Field | Type | Always present | What it is |
|---|---|---|---|
| database | string | Yes | Database or catalog name |
| table_name | string | Yes | Table name |
| table_type | string | Yes | Object type (TABLE/VIEW) |
| schema | string | No | Schema name |
| columns | object[] | No | Columns as {name, type} objects |
| row_count | integer | No | Estimated number of rows |
| object_type | string | No | Source object type |
| lineage | object | No | View lineage extraction settings |
Lineage
Lineage
Oracle’s dependency metadata records what each view reads, so views and their base objects are recorded as lineage. Turn on view column lineage to also recover which upstream columns feed each view column.
Oracle folds unquoted names to upper case, and Classifyre names objects the same way — so a table referenced by a Tableau or Power BI scan matches the one an Oracle scan produced instead of appearing twice. See Lineage & Relationships.
Worth knowing
- Oracle’s built-in schemas (
SYS,SYSTEM,XDBand friends) are excluded automatically — you don’t have to deny them by hand. - Autonomous Database and RDS for Oracle connect the same way; supply the service name from your connection descriptor.
Configuration
Beyond the fields below, every source also has the settings shared by all of them: the sampling strategy, the detectors to run, the scan schedule, and the compute limits for its scan jobs.
Required
Without these, the source will not save.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| required | object | Yes | —no extra properties | — |
| host | string | Yes | Oracle host endpoint | localhost |
| port | integer | Yes | Oracle TCP portmin 1, max 65535 | 1521 |
| service_name | string | Yes | Oracle service name (for example, TEST_PDB) | — |
Secrets
Stored encrypted and never shown again after you save them. See Configuration & Fields.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| masked | object | Yes | —no extra properties | — |
| password | string | Yes | Oracle login password | — |
| username | string | Yes | Oracle login username | — |
Optional
Everything you can tune. Sensible defaults apply when you leave them alone.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| optional | object | No | —no extra properties | — |
| connection | object | No | Connection tuning for Oracle.no extra properties | — |
| connection.connect_timeout_seconds | integer | No | Connection timeout in secondsmin 1, max 120 | 10 |
| scope | object | No | Schema, object, and lineage extraction scope.no extra properties | — |
| scope.exclude_schemas | array | No | Schema denylist (exact schema names) | ["SYS","SYSTEM","DBSNMP","WMSYS","CTXSYS","XDB","MDSYS","ORDSYS","OUTLN","ORDDATA"] |
| scope.exclude_schemas[] | string | No | — | — |
| scope.include_objects | array | No | Optional object allowlist. Accepted forms: schema.object or service.schema.object | — |
| scope.include_objects[] | string | No | — | — |
| scope.include_schemas | array | No | Optional schema allowlist (exact schema names) | — |
| scope.include_schemas[] | string | No | — | — |
| scope.include_tables | boolean | No | Include table assets in extraction | true |
| scope.include_view_column_lineage | boolean | No | Enable view column lineage collection from Oracle dependency metadata | true |
| scope.include_view_lineage | boolean | No | Extract coarse lineage links from views to referenced tables/views | true |
| scope.include_views | boolean | No | Include view assets in extraction | true |
| scope.table_limit | integer | No | Optional cap on number of table/view assets extractedmin 1 | — |