{"record":{"id":"45b6ca6274a05b3b","repo":"pentaho/pentaho-kettle","slug":"orabulkloadermeta-exception-tablenotfound","errorCode":null,"errorMessage":"OraBulkLoaderMeta.Exception.TableNotFound","messagePattern":"OraBulkLoaderMeta\\.Exception\\.TableNotFound","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/oracle-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/orabulkloader/OraBulkLoaderMeta.java","lineNumber":876,"sourceCode":"  }\n\n  public RowMetaInterface getRequiredFields( VariableSpace space ) throws KettleException {\n    String realTableName = space.environmentSubstitute( tableName );\n    String realSchemaName = space.environmentSubstitute( schemaName );\n\n    if ( databaseMeta != null ) {\n      Database db = new Database( loggingObject, databaseMeta );\n      try {\n        db.connect();\n\n        if ( !Utils.isEmpty( realTableName ) ) {\n          String schemaTable = databaseMeta.getQuotedSchemaTableCombination( realSchemaName, realTableName );\n\n          // Check if this table exists...\n          if ( db.checkTableExists( schemaTable ) ) {\n            return db.getTableFields( schemaTable );\n          } else {\n            throw new KettleException( BaseMessages.getString( PKG, \"OraBulkLoaderMeta.Exception.TableNotFound\" ) );\n          }\n        } else {\n          throw new KettleException( BaseMessages.getString( PKG, \"OraBulkLoaderMeta.Exception.TableNotSpecified\" ) );\n        }\n      } catch ( Exception e ) {\n        throw new KettleException(\n          BaseMessages.getString( PKG, \"OraBulkLoaderMeta.Exception.ErrorGettingFields\" ), e );\n      } finally {\n        db.close();\n      }\n    } else {\n      throw new KettleException( BaseMessages.getString( PKG, \"OraBulkLoaderMeta.Exception.ConnectionNotDefined\" ) );\n    }\n\n  }\n\n  /**\n   * @return the schemaName","sourceCodeStart":858,"sourceCodeEnd":894,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/oracle-bulk-loader/impl/src/main/java/org/pentaho/di/trans/steps/orabulkloader/OraBulkLoaderMeta.java#L858-L894","documentation":"Thrown by OraBulkLoaderMeta.getTableFields() when validating the target table: the step opens a database connection, checks whether the (schema-qualified) table exists via db.checkTableExists(), and throws this KettleException if it does not. The message text comes from the messages bundle key OraBulkLoaderMeta.Exception.TableNotFound.","triggerScenarios":"Calling getTableFields (used when the 'Get fields' button resolves target columns) with a tableName that, qualified with realSchemaName, does not exist in the database referenced by databaseMeta.","commonSituations":"Typo in the target table name or schema name; the table was never created; connecting to the wrong database/schema/environment; insufficient privileges so checkTableExists returns false; case-sensitivity issues with Oracle uppercase identifiers.","solutions":["Verify the table exists with the exact name/schema in the target Oracle database (SELECT * FROM all_tables WHERE table_name = ...)","Correct the schema name and table name in the OraBulkLoader dialog, remembering Oracle's default uppercase identifier convention","Confirm the database connection points to the intended host/service and that the user can see the table","Create the table first or grant SELECT privileges on it to the connection user"],"exampleFix":"// before\nrealTableName = \"ORDERS_NEW\"; // table not created yet\n// after: create it, or point to the existing table\nrealTableName = \"ORDERS\";","handlingStrategy":"validation","validationCode":"// Verify table existence before running the transformation:\nDatabase db = new Database( loggingObject, databaseMeta );\ndb.connect();\nString qualified = databaseMeta.getQuotedSchemaTableCombination( schema, table );\nif ( !db.checkTableExists( qualified ) ) {\n  throw new IllegalStateException( \"Target table missing: \" + qualified );\n}\ndb.disconnect();","typeGuard":null,"tryCatchPattern":"try { fields = meta.getTableFields(); } catch ( KettleException e ) { log.error( \"Table lookup failed, check schema/table: \" + e.getMessage(), e ); }","preventionTips":["Verify table/schema names against ALL_TABLES in the target environment","Remember Oracle's uppercase default identifiers","Confirm environment-specific connections before deployment","Run 'Get fields' in the dialog to test resolution at design time"],"tags":["kettle","pdi","oracle","table-not-found","database"],"backgroundTag":"resource-not-found","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}