IBM IDAA 不允许我查询特定列

IBM IDAA won't let me query specific column

我设置了一个 IBM IDAA,我在其中使用 CREATE 语句创建了一个仅加速器 table:

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;

我收到一条错误消息:

`select col_1 来自 MY_USER.aot_table

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

有人知道为什么会这样吗?

如果您创建的 table 是在列名和小写列名周围加上双引号,如您的问题所示,那么您的查询也必须将列名加双引号并匹配列名大小写.

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

所以试试 select "col_1" from MY_USER.aot_table ,假设 tabschema 也是 MY_USER。注意引用的列名。

如果您不想在查询中用双引号引起来您的列名,那么请不要在 create table 语句中对列名使用双引号。查询中未使用的列名称将折叠为大写,这通常对 SQL.

更方便