{"record":{"id":"3a2c8a39ca2e4713","repo":"pentaho/pentaho-kettle","slug":"luciddbstreamingloadermeta-exception-tablenotfound","errorCode":null,"errorMessage":"LucidDBStreamingLoaderMeta.Exception.TableNotFound","messagePattern":"LucidDBStreamingLoaderMeta\\.Exception\\.TableNotFound","errorType":"exception","errorClass":"KettleException","httpStatus":null,"severity":"error","filePath":"plugins/lucid-db-streaming-loader/core/src/main/java/org/pentaho/di/trans/steps/luciddbstreamingloader/LucidDBStreamingLoaderMeta.java","lineNumber":838,"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(\n              PKG, \"LucidDBStreamingLoaderMeta.Exception.TableNotFound\" ) );\n          }\n        } else {\n          throw new KettleException( BaseMessages.getString(\n            PKG, \"LucidDBStreamingLoaderMeta.Exception.TableNotSpecified\" ) );\n        }\n      } catch ( Exception e ) {\n        throw new KettleException( BaseMessages.getString(\n          PKG, \"LucidDBStreamingLoaderMeta.Exception.ErrorGettingFields\" ), e );\n      } finally {\n        db.close();\n      }\n    } else {\n      throw new KettleException( BaseMessages.getString(\n        PKG, \"LucidDBStreamingLoaderMeta.Exception.ConnectionNotDefined\" ) );\n    }\n\n  }","sourceCodeStart":820,"sourceCodeEnd":856,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/lucid-db-streaming-loader/core/src/main/java/org/pentaho/di/trans/steps/luciddbstreamingloader/LucidDBStreamingLoaderMeta.java#L820-L856","documentation":"During SQL generation / table-field lookup, the meta class connects to the target database and, if a schema and table name are set, checks db.checkTableExists(schemaTable). When the table does not exist it throws KettleException with the localized 'TableNotFound' message.","triggerScenarios":"getTableFields()/SQL-building path executes checkTableExists on the quoted schema-table combination built from realSchemaName/realTableName and the table is absent in the target LucidDB database.","commonSituations":"Typo in table or schema name in the step dialog; table dropped or renamed after the transformation was configured; connected to the wrong database/environment (dev vs prod); case-sensitivity mismatch in quoted identifiers.","solutions":["Create the target table in LucidDB (or run the step's 'SQL' button to generate the CREATE TABLE DDL).","Correct the schema/table names in the step dialog, matching case exactly.","Verify the database connection points to the intended environment.","Check quoting: quoted identifiers in LucidDB are case-sensitive; use the same case used at CREATE time."],"exampleFix":"// before\n<schema>SALES</schema><table>FactSalez</table>\n// after\n<schema>SALES</schema><table>FACT_SALES</table>","handlingStrategy":"validation","validationCode":"Database db = new Database(loggingObject, meta.getDatabaseMeta());\ndb.connect();\nString schemaTable = meta.getDatabaseMeta().getQuotedSchemaTableCombination(schema, table);\nif (!db.checkTableExists(schemaTable)) {\n  throw new KettleException(\"Target table \" + schemaTable + \" does not exist; create it before running\");\n}","typeGuard":null,"tryCatchPattern":"try {\n  db.getTableFields(schemaTable);\n} catch (KettleException e) {\n  if (e.getMessage().contains(\"TableNotFound\")) {\n    // generate DDL via step's SQL button or create table here\n  }\n  throw e;\n}","preventionTips":["Run the step's 'SQL' button to pre-generate and execute CREATE TABLE DDL.","Use environment-specific connection definitions to avoid hitting the wrong DB.","Match identifier case exactly when quoting schema/table names in LucidDB.","Add a pre-flight 'Table exists' check step or script in the job."],"tags":["kettle","database","luciddb","table"],"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"}