apache/seatunnel · error · IllegalArgumentException
Oracle table name must be in all uppercase, table
Error message
Oracle table name must be in all uppercase, table: ${table} What it means
Thrown by validateConfig when any letter in a table-list entry is lowercase. Oracle identifier resolution is case-sensitive here, and the connector requires uppercase table identifiers so they match the names stored in the redo log and data dictionary.
Solutions
- Convert the table name to uppercase: HR.EMPLOYEES.
- If the table was created with a quoted mixed-case name, recreate or rename it to an unquoted uppercase identifier.
- Verify the actual name with SELECT table_name FROM all_tables WHERE owner='HR'.
Example fix
// before table-names = ["hr.employees"] // after table-names = ["HR.EMPLOYEES"]
Defensive patterns
Strategy: validation
Validate before calling
if (!table.equals(table.toUpperCase(java.util.Locale.ROOT)))
throw new IllegalArgumentException("table must be uppercase: " + table); Prevention
- Normalize table identifiers to uppercase at config load time.
- Create Oracle tables without quoted identifiers so they store as uppercase.
When it happens
Trigger: table-list entries such as "hr.employees" or "HR.Employees" validated before job start.
Common situations: Users write table names in the lowercase style used by MySQL/PostgreSQL configs, or use camelCase from application code; common when generating configs programmatically from ORM metadata.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- Oracle database name must be in all uppercase, database
- Invalid table name
- Oracle-CDC specific startup mode uses…
- Oracle only supports single database, databaseList
- Oracle table name format must be is
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/fe96818c3b7371e2.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-oracle/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/oracle/config/OracleSourceConfigFactory.java:214
for (String database : databaseList) {
for (int i = 0; i < database.length(); i++) {
if (Character.isLetter(database.charAt(i))
&& !Character.isUpperCase(database.charAt(i))) {
throw new IllegalArgumentException(
"Oracle database name must be in all uppercase, database: " + database);
}
}
}
for (String table : tableList) {
if (table.split("\\.").length != 3 && table.split("\\.").length != 2) {
throw new IllegalArgumentException(
"Oracle table name format must be is: ${database}.${schema}.${table} or ${schema}.${table}, table: "
+ table);
}
for (int i = 0; i < table.length(); i++) {
if (Character.isLetter(table.charAt(i))
&& !Character.isUpperCase(table.charAt(i))) {
throw new IllegalArgumentException(
"Oracle table name must be in all uppercase, table: " + table);
}
}
}
}
}
View on GitHub (pinned to cf67b549a7)