Existing DB2 column reported as not being a column of the table
db2, db2-luw, moodle, sql
Solution
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'"
Problem
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?