Existing DB2 column reported as not being a column of the table

23,651

It's possible that the column name somehow got a space in it. You can use this query to find out if there's any trailing blank space:

db2 "select '<' || name || '>' from sysibm.syscolumns where tbname = 'MDL_MESSAGE'"
Share:
23,651
Marius Butuc
Author by

Marius Butuc

Ruby &amp; Rails aficionado keen on big data, cloud computing, usable web &amp; photography.

Updated on June 20, 2020

Comments

  • Marius Butuc
    Marius Butuc almost 4 years

    In a Moodle 2 install running on DB2, deleting a user is unsuccessful, returning an error reading from database:

    Debug info: [IBM][CLI Driver][DB2/LINUXX8664] SQL0206N "USERIDFROM" is not valid in the context where it is used. SQLSTATE=42703 SQLCODE=-206 SELECT * FROM mdl_message WHERE useridfrom = ? ORDER BY timecreated
    [array ( 0 => '28521', )]

    The error description for SQL0206N is clear, but useridfrom is a column of mdl_message:

    $ db2 describe table mdl_message
    
                              Data type                     Column
    Column name               schema    Data type name      Length     Scale Nulls
    ------------------------- --------- ------------------- ---------- ----- ------
     ID                       SYSIBM    BIGINT                       8     0 No    
     USERIDFROM               SYSIBM    BIGINT                       8     0 No    
     USERIDTO                 SYSIBM    BIGINT                       8     0 No    
     SUBJECT                  SYSIBM    VARCHAR                    200     0 Yes   
     FULLMESSAGE              SYSIBM    VARCHAR                    200     0 Yes   
     FULLMESSAGEFORMAT        SYSIBM    SMALLINT                     2     0 Yes   
     FULLMESSAGEHTML          SYSIBM    VARCHAR                    100     0 Yes   
     SMALLMESSAGE             SYSIBM    VARCHAR                    200     0 Yes   
     NOTIFICATION             SYSIBM    SMALLINT                     2     0 Yes   
     CONTEXTURL               SYSIBM    VARCHAR                    200     0 Yes   
     CONTEXTURLNAME           SYSIBM    VARCHAR                    200     0 Yes   
     TIMECREATED              SYSIBM    BIGINT                       8     0 No    
    
      12 record(s) selected.
    

    What else could cause this error?

  • Kulbhushan Singh
    Kulbhushan Singh almost 9 years
    One quick question, when i am checking columns from "sysibm.syscolumns" it is giving me bunch of columns but i cannot see that column when i do "select* from t_name", it is subset of the columns shown in above sysibm columns. Can you pleas help me understand why there is variation in the columns?