未找到列或全局变量

时间:2018-01-03 23:18:06

标签: sql db2 db2-400

问题是在我们的IBM DB2数据库中查询使用Aqua Data Studio创建的表时,除非我使用系统名称,否则无法指定列名。很久以前的表没有这个问题。查询可以在其中找到列名称。使用通配符也没有问题,列名显示得很好。     为清楚起见:

  • 这适用:SELECT * FROM WUNITS.DVIRS
  • 这适用:SELECT ID___00001 FROM WUNITS.DVIRS
  • 这不是:SELECT FROM FROM WUNITS.DVIRS
  • 这适用于以相同方式创建的旧表:SELECT Id FROM WUNITS.DVIRS

以下是列定义

的屏幕截图

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:2)

由于您提到了系统名称,我假设您正在为IBM i使用Db2 ....

我怀疑您已使用引用的列名创建了表格...否则您将看不到混合大小写的列名称,它们将全部为大写字母。

例如:

create table dtcwilt.dvirs (
  "Id" bigint
  , "AssetNumber" varchar(25)
  , WoNumber bigint
  , WoStatusId int
)

不确定您使用哪种工具来显示列,但ACS架构工具会显示引用的名称。

enter image description here

引号实际上是名称的一部分,您需要在您的选择中使用带引号的名称正确的大写

这应该有效:

SELECT "Id" FROM WUNITS.DVIRS

这不会:

SELECT "ID" FROM WUNITS.DVIRS