IBM IDAA 不允许我查询特定列



我设置了一个IBM IDAA,在那里我创建了一个仅包含加速器的表,其中包含CREATE语句:

CREATE TABLE aot_table ( "col_1" decimal(11,0) NOT NULL , "col_2" smallint, "col_3" smallint, ) IN ACCELERATOR my_accel;

然后,我用INSERTS手动加载了它和测试数据。当我用查询时

SELECT * from MY_USER.aot_table;

我得到了预期的数据。

但如果我尝试直接查询col_1,如下所示:

SELECT col_1 from MY_USER.aot_table;

我收到一个错误:

`从MY_USER.aot_table 中选择col_1

COL_1在使用它的上下文中无效。SQLCODE=-206,SQLSTATE=42703,DRIVER=4.24.92`

有人知道为什么会发生这种事吗?

如果您创建的表的列名和小写colname两边都有双引号,如您的问题所示,那么您的查询也必须对列名进行双引号并匹配列名大小写。

否则,Db2将不带引号的列名折叠为大写,这将与小写列名不匹配,这将导致异常。

因此,请尝试select "col_1" from MY_USER.aot_table,假设tabschema也是MY_USER。请注意引用的列名。

如果您不想在查询中对列名使用双引号,那么就不要在create table语句中的列名周围使用双引号。查询中未报价的列名将折叠为大写,这通常对SQL更方便。

最新更新