Db2 IBMIDAA不允许我查询特定列
我有一个IBM IDAA设置,我在其中创建了一个只有加速器的表,并使用CREATE语句: 创建表aot_表 第1列小数11,0不为空, col_2 smallint, col_3 smallint, 在加速器my_accel中 然后,我手动加载它,并插入测试数据。当我用以下命令查询时: 从MY_USER.aot_表中选择* 我得到了预期的数据 但如果我尝试直接查询col_1,如下所示: 从MY_USER.aot_表中选择col_1 我得到一个错误声明: `从MY_USER.aot_表中选择列1 列1在使用它的上下文中无效。SQLCODE=-206,SQLSTATE=42703,DRIVER=4.24.92`Db2 IBMIDAA不允许我查询特定列,db2,ibm,Db2,Ibm,我有一个IBM IDAA设置,我在其中创建了一个只有加速器的表,并使用CREATE语句: 创建表aot_表 第1列小数11,0不为空, col_2 smallint, col_3 smallint, 在加速器my_accel中 然后,我手动加载它,并插入测试数据。当我用以下命令查询时: 从MY_USER.aot_表中选择* 我得到了预期的数据 但如果我尝试直接查询col_1,如下所示: 从MY_USER.aot_表中选择col_1 我得到一个错误声明: `从MY_USER.aot_表中选择列1
有人知道为什么会发生这种情况吗?如果您创建的表的列名和小写列名周围都有双引号,如您的问题所示,那么您的查询也必须双引号列名并匹配列名大小写 否则,Db2将把不带引号的列名折叠为大写,而大写与小写列名不匹配,这将导致异常 因此,假设tabschema也是我的用户,请尝试从MY_USER.aot_表中选择col_1。请注意引用的列名
若您不想在查询中对列名使用双引号,那个么不要在CREATETABLE语句中对列名使用双引号。然后,查询中未插入的列名将折叠为大写,这通常对SQL更方便。谢谢,在查询中使用双引号,并根据您的评论,我将首先重新创建不带引号的表。再次感谢。