在DB2上运行的Moodle 2安装中,删除用户失败,从数据库中返回错误读取:
调试信息:[IBM] [CLI驱动程序] [DB2 / LINUXX8664] SQL0206N“USERIDFROM”在使用它的上下文中无效。 SQLSTATE = 42703 SQLCODE = -206 SELECT * FROM mdl_message WHERE useridfrom =?按时间顺序排列
[阵列( 0 => '28521', )]
SQL0206N的错误说明很明确,但useridfrom
是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.
还有什么可能导致此错误?
答案 0 :(得分:6)
列名可能以某种方式在其中获得了空格。您可以使用此查询来查明是否有任何尾随空格:
db2 "select '<' || name || '>' from sysibm.syscolumns where tbname = 'MDL_MESSAGE'"
答案 1 :(得分:0)
您确定从命令行和CLI以同一用户身份进行连接。可能存在这样的情况:在同一个表中存在于不同的模式中,并且您看到了不同表的描述但访问了另一个表。