MetricSign
Start free
Medium severityschema

Oracle Database Error:
ORA-00904

What does this error mean?

A column name, alias, or object name referenced in the SQL statement does not exist in the table, is misspelled, or uses invalid characters.

Common causes

  • 1Column was renamed or dropped in the source or target table
  • 2Column name is misspelled in the query or mapping
  • 3Column name uses reserved words without double-quoting
  • 4Case mismatch — Oracle identifiers are case-insensitive unless quoted, but mixed-case quoted names must match exactly
  • 5SELECT * was expanded at design time and a column was later removed

How to fix it

  1. 1Step 1: The error message includes the invalid identifier name — check if it exists: `SELECT column_name FROM all_columns WHERE table_name = '<TABLE>' AND owner = '<SCHEMA>';`.
  2. 2Step 2: Fix the column name in the SQL query, ADF mapping, or dataset schema.
  3. 3Step 3: If using quoted identifiers, verify the exact case matches the database definition.
  4. 4Step 4: Refresh the ADF dataset schema cache if it was auto-detected from an older table version.
  5. 5Step 5: Update column mappings in the Copy Activity if the source schema changed.

Example log output

ORA-00904: "CUSTOMER_NM": invalid identifier
SQL: INSERT INTO orders (customer_nm, amount) VALUES (:1, :2)

Frequently asked questions

Why does Oracle say a column is invalid when it clearly exists?

Check if the column was created with double-quoted mixed-case name (e.g. CREATE TABLE t ("OrderId" NUMBER)). You must query it as `"OrderId"` exactly — Oracle uppercases all unquoted identifiers.

Source · docs.oracle.com/error-help/db/ora-00904

Other schema errors